01: /*
02: * JOSSO: Java Open Single Sign-On
03: *
04: * Copyright 2004-2008, Atricore, Inc.
05: *
06: * This is free software; you can redistribute it and/or modify it
07: * under the terms of the GNU Lesser General Public License as
08: * published by the Free Software Foundation; either version 2.1 of
09: * the License, or (at your option) any later version.
10: *
11: * This software is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this software; if not, write to the Free
18: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
20: */
21:
22: package org.josso.gateway.signon;
23:
24: import org.apache.commons.logging.Log;
25: import org.apache.commons.logging.LogFactory;
26: import org.apache.struts.action.ActionForm;
27: import org.apache.struts.action.ActionForward;
28: import org.apache.struts.action.ActionMapping;
29: import org.josso.gateway.SSOException;
30: import org.josso.gateway.SSOGateway;
31: import org.josso.gateway.identity.SSORole;
32: import org.josso.gateway.identity.SSOUser;
33: import org.josso.gateway.session.SSOSession;
34:
35: import javax.servlet.http.HttpServletRequest;
36: import javax.servlet.http.HttpServletResponse;
37:
38: /**
39: * @author <a href="mailto:sgonzalez@josso.org">Sebastian Gonzalez Oyuela</a>
40: * @version $Id: InfoAction.java 508 2008-02-18 13:32:29Z sgonzalez $
41: */
42:
43: public class InfoAction extends SignonBaseAction {
44:
45: private static final Log logger = LogFactory
46: .getLog(InfoAction.class);
47:
48: public ActionForward execute(ActionMapping mapping,
49: ActionForm form, HttpServletRequest request,
50: HttpServletResponse response) {
51: String jossoSessionId = getJossoSessionId(request);
52:
53: if (jossoSessionId != null) {
54: try {
55: SSOGateway g = getSSOGateway();
56: SSOUser user = g.findUserInSession(jossoSessionId);
57: SSOSession session = g.findSession(jossoSessionId);
58: SSORole[] roles = g.findRolesByUsername(user.getName());
59:
60: request.setAttribute(KEY_JOSSO_USER, user);
61: request.setAttribute(KEY_JOSSO_USER_ROLES, roles);
62: request.setAttribute(KEY_JOSSO_SESSION, session);
63:
64: if (logger.isDebugEnabled())
65: logger.debug("[execute()] stored user : " + user
66: + " under key : " + KEY_JOSSO_USER);
67:
68: if (logger.isDebugEnabled())
69: logger.debug("[execute()] stored session : "
70: + session + " under key : "
71: + KEY_JOSSO_SESSION);
72:
73: } catch (SSOException e) {
74: if (logger.isDebugEnabled())
75: logger.error(e.getMessage(), e);
76:
77: } catch (Exception e) {
78: logger.error(e, e);
79: }
80:
81: }
82:
83: return mapping.findForward("success");
84: }
85:
86: }
|