gluu
公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.gluu.oxauth.cas.auth.login.flow.ClientAction クラス
org.gluu.oxauth.cas.auth.login.flow.ClientAction の継承関係図
Inheritance graph
org.gluu.oxauth.cas.auth.login.flow.ClientAction 連携図
Collaboration graph

公開メンバ関数

 ClientAction (final AuthClient client, final CentralAuthenticationService centralAuthenticationService)
 

静的公開変数類

static final String DEFAULT_CLIENT_NAME_PARAMETER = "client_name"
 
static final String SERVICE = "service"
 
static final String THEME = "theme"
 
static final String LOCALE = "locale"
 
static final String METHOD = "method"
 

限定公開メンバ関数

Event doExecute (final RequestContext context) throws Exception
 
void prepareForLoginPage (final RequestContext context, final WebContext webContext)
 

非公開メンバ関数

ClientCredential getClientCrendentials (final RequestContext context, final WebContext webContext)
 
void restoreRequestAttribute (final WebContext context, final String name)
 
void saveRequestParameter (final WebContext context, final String name)
 

非公開変数類

final Logger logger = LoggerFactory.getLogger(ClientAction.class)
 
final AuthClient client
 
final CentralAuthenticationService centralAuthenticationService
 

詳解

This class represents an action to do oxAuth authentication in CAS

著者
Yuriy Movchan 11/13/2014

構築子と解体子

◆ ClientAction()

org.gluu.oxauth.cas.auth.login.flow.ClientAction.ClientAction ( final AuthClient  client,
final CentralAuthenticationService  centralAuthenticationService 
)
inline

Build the action

引数
theCentralAuthenticationServiceThe service for CAS authentication
theClientsThe clients for authentication
60  {
61  this.client = client;
63  }
final AuthClient client
Definition: ClientAction.java:47
final CentralAuthenticationService centralAuthenticationService
Definition: ClientAction.java:50

関数詳解

◆ doExecute()

Event org.gluu.oxauth.cas.auth.login.flow.ClientAction.doExecute ( final RequestContext  context) throws Exception
inlineprotected

{}

69  {
70  final HttpServletRequest request = WebUtils.getHttpServletRequest(context);
71  final HttpServletResponse response = WebUtils.getHttpServletResponse(context);
72 
73  // Web context
74  final WebContext webContext = new J2EContext(request, response);
75 
76  // It's an authentication
77  if (client.isAuthorizationResponse(webContext)) {
78  logger.info("Procession authentication request");
79 
80  // Check if oxAuth request state is correct
81  if (!client.isValidRequestState(webContext)) {
82  logger.warn("The state in session and in request are not equals");
83 
84  // Reinit login page
85  prepareForLoginPage(context, webContext);
86 
87  return new Event(this, "stop");
88  }
89 
90  // Try to authenticate
91  final ClientCredential credentials = getClientCrendentials(context, webContext);
92  if (credentials != null) {
93  WebUtils.putTicketGrantingTicketInRequestScope(context,
94  this.centralAuthenticationService.createTicketGrantingTicket(credentials));
95  return success();
96  }
97  }
98 
99  // Go to login page
100  prepareForLoginPage(context, webContext);
101 
102  return error();
103  }
void prepareForLoginPage(final RequestContext context, final WebContext webContext)
Definition: ClientAction.java:136
final AuthClient client
Definition: ClientAction.java:47
ClientCredential getClientCrendentials(final RequestContext context, final WebContext webContext)
Definition: ClientAction.java:112
boolean isValidRequestState(final WebContext context)
Definition: OpenIdClient.java:224
final Logger logger
Definition: ClientAction.java:34
boolean isAuthorizationResponse(final WebContext context)
Definition: OpenIdClient.java:210
final CentralAuthenticationService centralAuthenticationService
Definition: ClientAction.java:50

◆ getClientCrendentials()

ClientCredential org.gluu.oxauth.cas.auth.login.flow.ClientAction.getClientCrendentials ( final RequestContext  context,
final WebContext  webContext 
)
inlineprivate

Build client credenatils from incomming request

引数
contextThe current webflow context
webContextThe current web context
戻り値
client credentials
112  {
113  final OpenIdCredentials openIdCredentials = client.getCredentials(webContext);
114  final ClientCredential credentials = new ClientCredential(openIdCredentials);
115 
116  // Retrieve parameters from web session
117  final Service service = (Service) webContext.getSessionAttribute(SERVICE);
118  if (service != null) {
119  webContext.setRequestAttribute(SERVICE, service.getId());
120  }
121  context.getFlowScope().put(SERVICE, service);
122 
123  restoreRequestAttribute(webContext, THEME);
124  restoreRequestAttribute(webContext, LOCALE);
125  restoreRequestAttribute(webContext, METHOD);
126 
127  return credentials;
128  }
void restoreRequestAttribute(final WebContext context, final String name)
Definition: ClientAction.java:165
final AuthClient client
Definition: ClientAction.java:47
final OpenIdCredentials getCredentials(final WebContext context)
Definition: OpenIdClient.java:246
static final String METHOD
Definition: ClientAction.java:44
static final String LOCALE
Definition: ClientAction.java:43
static final String SERVICE
Definition: ClientAction.java:41
static final String THEME
Definition: ClientAction.java:42

◆ prepareForLoginPage()

void org.gluu.oxauth.cas.auth.login.flow.ClientAction.prepareForLoginPage ( final RequestContext  context,
final WebContext  webContext 
)
inlineprotected

Prepare the data for the login page

引数
contextThe current webflow context
webContextThe current web context
136  {
137  // Save parameters in web session
138  final Service service = (Service) context.getFlowScope().get(SERVICE);
139  if (service != null) {
140  webContext.setSessionAttribute(SERVICE, service);
141  }
142  saveRequestParameter(webContext, THEME);
143  saveRequestParameter(webContext, LOCALE);
144  saveRequestParameter(webContext, METHOD);
145 
146  final String keyRedirectionUrl = this.client.getName() + "Url";
147  final String redirectionUrl = this.client.getRedirectionUrl(webContext);
148  logger.debug("Generated redirection Url", redirectionUrl);
149 
150  context.getFlowScope().put(keyRedirectionUrl, redirectionUrl);
151 
152  final String keyAuthMethod = this.client.getName() + "OpenIdDefaultAuthenticator";
153  final Boolean keyAuthMethodValue = this.client.isOpenIdDefaultAuthenticator();
154  logger.debug("OpenIdDefaultAuthenticator", keyAuthMethodValue);
155 
156  context.getFlowScope().put(keyAuthMethod, keyAuthMethodValue);
157  }
final AuthClient client
Definition: ClientAction.java:47
static final String METHOD
Definition: ClientAction.java:44
final Logger logger
Definition: ClientAction.java:34
static final String LOCALE
Definition: ClientAction.java:43
String getName()
Definition: OpenIdClient.java:178
static final String SERVICE
Definition: ClientAction.java:41
void saveRequestParameter(final WebContext context, final String name)
Definition: ClientAction.java:176
static final String THEME
Definition: ClientAction.java:42
String getRedirectionUrl(final WebContext context)
Definition: OpenIdClient.java:185
boolean isOpenIdDefaultAuthenticator()
Definition: AuthClient.java:31

◆ restoreRequestAttribute()

void org.gluu.oxauth.cas.auth.login.flow.ClientAction.restoreRequestAttribute ( final WebContext  context,
final String  name 
)
inlineprivate

Restore an attribute in web session as an attribute in request

引数
webContextThe current web context
nameThe name of the parameter
165  {
166  final String value = (String) context.getSessionAttribute(name);
167  context.setRequestAttribute(name, value);
168  }

◆ saveRequestParameter()

void org.gluu.oxauth.cas.auth.login.flow.ClientAction.saveRequestParameter ( final WebContext  context,
final String  name 
)
inlineprivate

Save a request parameter in the web session

引数
webContextThe current web context
nameThe name of the parameter
176  {
177  final String value = context.getRequestParameter(name);
178  if (value != null) {
179  context.setSessionAttribute(name, value);
180  }
181  }

メンバ詳解

◆ centralAuthenticationService

final CentralAuthenticationService org.gluu.oxauth.cas.auth.login.flow.ClientAction.centralAuthenticationService
private

◆ client

final AuthClient org.gluu.oxauth.cas.auth.login.flow.ClientAction.client
private

◆ DEFAULT_CLIENT_NAME_PARAMETER

final String org.gluu.oxauth.cas.auth.login.flow.ClientAction.DEFAULT_CLIENT_NAME_PARAMETER = "client_name"
static

◆ LOCALE

final String org.gluu.oxauth.cas.auth.login.flow.ClientAction.LOCALE = "locale"
static

◆ logger

final Logger org.gluu.oxauth.cas.auth.login.flow.ClientAction.logger = LoggerFactory.getLogger(ClientAction.class)
private

◆ METHOD

final String org.gluu.oxauth.cas.auth.login.flow.ClientAction.METHOD = "method"
static

◆ SERVICE

final String org.gluu.oxauth.cas.auth.login.flow.ClientAction.SERVICE = "service"
static

Constants to store request parameters

◆ THEME

final String org.gluu.oxauth.cas.auth.login.flow.ClientAction.THEME = "theme"
static

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