gluu
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 限定公開変数類 | 非公開メンバ関数 | 全メンバ一覧
org.gluu.oxauth.client.session.SignOutHandler クラス
org.gluu.oxauth.client.session.SignOutHandler 連携図
Collaboration graph

クラス

class  SignOutHandlerSingleton
 

公開メンバ関数

String getOAuthLogoutUrl (final HttpServletRequest servletRequest)
 
final String constructRedirectUrl (final HttpServletRequest request)
 

静的公開メンバ関数

static SignOutHandler instance ()
 

限定公開変数類

final Log log = LogFactory.getLog(getClass())
 

非公開メンバ関数

 SignOutHandler ()
 

詳解

Listener to detect when an HTTP session is destroyed and remove it from the map of managed sessions. Also allows for the programmatic removal of sessions.

Enables the SAML Single Sign out feature.

著者
Yuriy Movchan
バージョン
0.1, 03/20/2013

構築子と解体子

◆ SignOutHandler()

org.gluu.oxauth.client.session.SignOutHandler.SignOutHandler ( )
inlineprivate
34 {}

関数詳解

◆ constructRedirectUrl()

final String org.gluu.oxauth.client.session.SignOutHandler.constructRedirectUrl ( final HttpServletRequest  request)
inline
73  {
74  log.trace("Starting constructRedirectUrl");
75 
76  String redirectUri = Configuration.instance().getPropertyValue(Configuration.OAUTH_PROPERTY_LOGOUT_REDIRECT_URL);
77  if ((redirectUri != null) && !redirectUri.equals("")) {
78  log.trace("redirectUri from configuration: " + redirectUri);
79  return redirectUri;
80  }
81 
82  String[] redirectUriParameters = (String[])request.getParameterMap().get(Configuration.OAUTH_POST_LOGOUT_REDIRECT_URI);
83  if ((redirectUriParameters != null) && (redirectUriParameters.length > 0)) {
84  redirectUri = redirectUriParameters[0];
85  }
86 
87  if ((redirectUri != null) && !redirectUri.equals("")) {
88  log.trace("redirectUri from request: " + redirectUri);
89  return redirectUri;
90  }
91 
92  int serverPort = request.getServerPort();
93  if ((serverPort == 80) || (serverPort == 443)) {
94  redirectUri = String.format("%s://%s%s", request.getScheme(), request.getServerName(), "/identity/authentication/finishlogout");
95  } else {
96  redirectUri = String.format("%s://%s:%s%s", request.getScheme(), request.getServerName(), request.getServerPort(), "/identity");
97  }
98 
99  log.trace("Default redirectUri: " + redirectUri);
100 
101  return redirectUri;
102  }
final Log log
Definition: SignOutHandler.java:28

◆ getOAuthLogoutUrl()

String org.gluu.oxauth.client.session.SignOutHandler.getOAuthLogoutUrl ( final HttpServletRequest  servletRequest)
inline
40  {
41  final HttpServletRequest request = (HttpServletRequest) servletRequest;
42  final HttpSession session = request.getSession(false);
43 
44  if (session == null) {
45  log.trace("There is no exising session");
46  return null;
47  }
48 
49  OAuthData oAuthData = (OAuthData) session.getAttribute(Configuration.SESSION_OAUTH_DATA);
50  if (oAuthData == null) {
51  log.trace("There is no OAuthData in the session");
52  return null;
53  }
54 
55  // TODO: Validate access token
56  ClientRequest clientRequest = new ClientRequest(Configuration.instance().getPropertyValue(Configuration.OAUTH_PROPERTY_LOGOUT_URL));
57 
58  clientRequest.queryParameter(Configuration.OAUTH_ID_TOKEN_HINT, oAuthData.getIdToken());
59  clientRequest.queryParameter(Configuration.OAUTH_POST_LOGOUT_REDIRECT_URI, constructRedirectUrl(request));
60 
61  // Remove OAuth data from session
62  session.removeAttribute(Configuration.SESSION_OAUTH_DATA);
63 
64  try {
65  return clientRequest.getUri();
66  } catch (Exception ex) {
67  log.error("Failed to prepare OAuth log out URL", ex);
68  }
69 
70  return null;
71  }
final Log log
Definition: SignOutHandler.java:28
final String constructRedirectUrl(final HttpServletRequest request)
Definition: SignOutHandler.java:73

◆ instance()

static SignOutHandler org.gluu.oxauth.client.session.SignOutHandler.instance ( )
inlinestatic
36  {
37  return SignOutHandlerSingleton.INSTANCE;
38  }

メンバ詳解

◆ log

final Log org.gluu.oxauth.client.session.SignOutHandler.log = LogFactory.getLog(getClass())
protected

このクラス詳解は次のファイルから抽出されました: