gluu
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.xdi.oxauth.authorize.ws.rs.AuthorizeAction クラス
org.xdi.oxauth.authorize.ws.rs.AuthorizeAction 連携図
Collaboration graph

公開メンバ関数

void checkUiLocales ()
 
void checkPermissionGranted () throws IOException
 
List< org.xdi.oxauth.model.common.ScopegetScopes ()
 
List< String > getRequestedClaims ()
 
String getScope ()
 
void setScope (String scope)
 
String getResponseType ()
 
void setResponseType (String responseType)
 
String getClientId ()
 
void setClientId (String clientId)
 
String getRedirectUri ()
 
void setRedirectUri (String redirectUri)
 
String getState ()
 
void setState (String state)
 
String getResponseMode ()
 
void setResponseMode (String responseMode)
 
String getNonce ()
 
void setNonce (String nonce)
 
String getDisplay ()
 
void setDisplay (String display)
 
String getPrompt ()
 
void setPrompt (String prompt)
 
Integer getMaxAge ()
 
void setMaxAge (Integer maxAge)
 
String getUiLocales ()
 
void setUiLocales (String uiLocales)
 
String getIdTokenHint ()
 
void setIdTokenHint (String idTokenHint)
 
String getLoginHint ()
 
void setLoginHint (String loginHint)
 
String getAcrValues ()
 
void setAcrValues (String acrValues)
 
String getAmrValues ()
 
void setAmrValues (String amrValues)
 
String getRequest ()
 
void setRequest (String request)
 
String getRequestUri ()
 
void setRequestUri (String requestUri)
 
String getSessionId ()
 
void setSessionId (String p_sessionId)
 
void permissionGranted ()
 
void permissionGranted (SessionId session)
 
void permissionDenied ()
 
void invalidRequest ()
 
void consentRequired ()
 
String getCodeChallenge ()
 
void setCodeChallenge (String codeChallenge)
 
String getCodeChallengeMethod ()
 
void setCodeChallengeMethod (String codeChallengeMethod)
 
String getClaims ()
 
void setClaims (String claims)
 
String encodeParameters (String url, Map< String, Object > parameters)
 

非公開メンバ関数

SessionId handleAcrChange (SessionId session, List< Prompt > prompts)
 
SessionId getSession ()
 
void authenticationFailedSessionInvalid ()
 
boolean containsParameter (String url, String parameterName)
 
String encode (Object value)
 
boolean hasOnlyOpenidScope ()
 

非公開変数類

Logger log
 
ClientService clientService
 
ErrorResponseFactory errorResponseFactory
 
SessionIdService sessionIdService
 
UserService userService
 
RedirectionUriService redirectionUriService
 
ClientAuthorizationsService clientAuthorizationsService
 
ExternalAuthenticationService externalAuthenticationService
 
ExternalConsentGatheringService externalConsentGatheringService
 
AuthenticationMode defaultAuthenticationMode
 
LanguageBean languageBean
 
NetworkService networkService
 
AppConfiguration appConfiguration
 
FacesService facesService
 
FacesMessages facesMessages
 
FacesContext facesContext
 
ExternalContext externalContext
 
ConsentGathererService consentGatherer
 
AuthorizeService authorizeService
 
RequestParameterService requestParameterService
 
ScopeChecker scopeChecker
 
String scope
 
String responseType
 
String clientId
 
String redirectUri
 
String state
 
String responseMode
 
String nonce
 
String display
 
String prompt
 
Integer maxAge
 
String uiLocales
 
String idTokenHint
 
String loginHint
 
String acrValues
 
String amrValues
 
String request
 
String requestUri
 
String codeChallenge
 
String codeChallengeMethod
 
String claims
 
String sessionId
 
String allowedScope
 

詳解

著者
Javier Rojas Blum
Yuriy Movchan
バージョン
August 29, 2018

関数詳解

◆ authenticationFailedSessionInvalid()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.authenticationFailedSessionInvalid ( )
inlineprivate
728  {
729  facesMessages.add(FacesMessage.SEVERITY_ERROR, "login.errorSessionInvalidMessage");
730  facesService.redirect("/error.xhtml");
731  }
FacesService facesService
Definition: AuthorizeAction.java:110
FacesMessages facesMessages
Definition: AuthorizeAction.java:113

◆ checkPermissionGranted()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.checkPermissionGranted ( ) throws IOException
inline
183  {
184  if ((clientId == null) || clientId.isEmpty()) {
185  log.error("Permission denied. client_id should be not empty.");
187  return;
188  }
189 
190  Client client = null;
191  try {
192  client = clientService.getClient(clientId);
193  } catch (EntryPersistenceException ex) {
194  log.error("Permission denied. Failed to find client by inum '{}' in LDAP.", clientId, ex);
196  return;
197  }
198 
199  if (client == null) {
200  log.error("Permission denied. Failed to find client_id '{}' in LDAP.", clientId);
202  return;
203  }
204 
205  // Fix the list of scopes in the authorization page. oxAuth #739
206  Set<String> grantedScopes = scopeChecker.checkScopesPolicy(client, scope);
207  allowedScope = org.xdi.oxauth.model.util.StringUtils.implode(grantedScopes, " ");
208 
209  SessionId session = getSession();
210  List<Prompt> prompts = Prompt.fromString(prompt, " ");
211 
212  try {
214  } catch (AcrChangedException e) {
215  log.debug("There is already existing session which has another acr then {}, session: {}", acrValues, session.getId());
216  if (e.isForceReAuthentication()) {
217  session = handleAcrChange(session, prompts);
218  } else {
219  log.error("ACR is changed, please provide a supported and enabled acr value");
221  return;
222  }
223  }
224 
225  if (session == null || StringUtils.isBlank(session.getUserDn()) || SessionIdState.AUTHENTICATED != session.getState()) {
226  Map<String, String> parameterMap = externalContext.getRequestParameterMap();
227  Map<String, String> requestParameterMap = requestParameterService.getAllowedParameters(parameterMap);
228 
229  String redirectTo = "/login.xhtml";
230 
231  boolean useExternalAuthenticator = externalAuthenticationService.isEnabled(AuthenticationScriptUsageType.INTERACTIVE);
232  if (useExternalAuthenticator) {
233  List<String> acrValuesList = sessionIdService.acrValuesList(this.acrValues);
234  if (acrValuesList.isEmpty()) {
235  if (StringHelper.isNotEmpty(defaultAuthenticationMode.getName())) {
236  acrValuesList = Arrays.asList(defaultAuthenticationMode.getName());
237  } else {
238  CustomScriptConfiguration defaultExternalAuthenticator = externalAuthenticationService.getDefaultExternalAuthenticator(AuthenticationScriptUsageType.INTERACTIVE);
239  if (defaultExternalAuthenticator != null) {
240  acrValuesList = Arrays.asList(defaultExternalAuthenticator.getName());
241  }
242  }
243 
244  }
245 
246  CustomScriptConfiguration customScriptConfiguration = externalAuthenticationService.determineCustomScriptConfiguration(AuthenticationScriptUsageType.INTERACTIVE, acrValuesList);
247 
248  if (customScriptConfiguration == null) {
249  log.error("Failed to get CustomScriptConfiguration. auth_step: {}, acr_values: {}", 1, this.acrValues);
251  return;
252  }
253 
254  String acr = customScriptConfiguration.getName();
255 
256  requestParameterMap.put(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, acr);
257  requestParameterMap.put("auth_step", Integer.toString(1));
258 
259  String tmpRedirectTo = externalAuthenticationService.executeExternalGetPageForStep(customScriptConfiguration, 1);
260  if (StringHelper.isNotEmpty(tmpRedirectTo)) {
261  log.trace("Redirect to person authentication login page: {}", tmpRedirectTo);
262  redirectTo = tmpRedirectTo;
263  }
264  }
265 
266  // Store Remote IP
267  String remoteIp = networkService.getRemoteIp();
268  requestParameterMap.put(Constants.REMOTE_IP, remoteIp);
269 
270  // Create unauthenticated session
271  SessionId unauthenticatedSession = sessionIdService.generateUnauthenticatedSessionId(null, new Date(), SessionIdState.UNAUTHENTICATED, requestParameterMap, false);
272  unauthenticatedSession.setSessionAttributes(requestParameterMap);
273  unauthenticatedSession.addPermission(clientId, false);
274  boolean persisted = sessionIdService.persistSessionId(unauthenticatedSession, !prompts.contains(Prompt.NONE)); // always persist is prompt is not none
275  if (persisted && log.isTraceEnabled()) {
276  log.trace("Session '{}' persisted to LDAP", unauthenticatedSession.getId());
277  }
278 
279  this.sessionId = unauthenticatedSession.getId();
280  sessionIdService.createSessionIdCookie(this.sessionId, unauthenticatedSession.getSessionState(), false);
281 
282  Map<String, Object> loginParameters = new HashMap<String, Object>();
283  if (requestParameterMap.containsKey(AuthorizeRequestParam.LOGIN_HINT)) {
284  loginParameters.put(AuthorizeRequestParam.LOGIN_HINT,
285  requestParameterMap.get(AuthorizeRequestParam.LOGIN_HINT));
286  }
287 
288  facesService.redirectWithExternal(redirectTo, loginParameters);
289 
290  return;
291  }
292 
294  ExternalContext externalContext = facesContext.getExternalContext();
295  externalContext.setResponseStatus(HttpServletResponse.SC_BAD_REQUEST);
296  externalContext.setResponseContentType(MediaType.APPLICATION_JSON);
297  externalContext.getResponseOutputWriter().write(errorResponseFactory.getErrorAsJson(AuthorizeErrorResponseType.INVALID_REQUEST_REDIRECT_URI, state));
298  facesContext.responseComplete();
299  }
300 
301  final User user = userService.getUserByDn(session.getUserDn());
302  log.trace("checkPermissionGranted, user = " + user);
303 
304  if (AuthorizeParamsValidator.noNonePrompt(prompts)) {
305  if (appConfiguration.getTrustedClientEnabled() && client.getTrustedClient() && !prompts.contains(Prompt.CONSENT)) {
306  // if trusted client = true, then skip authorization page and grant access directly
307  permissionGranted(session);
308  return;
310  && SubjectType.PAIRWISE.toString().equals(client.getSubjectType()) && hasOnlyOpenidScope()) {
311  // If a client has only openid scope and pairwise id, person should not have to authorize. oxAuth-743
312  permissionGranted(session);
313  return;
314  }
315 
317  user.getAttribute("inum"),
318  client.getClientId(),
320  if (clientAuthorizations != null && clientAuthorizations.getScopes() != null &&
321  Arrays.asList(clientAuthorizations.getScopes()).containsAll(
323  permissionGranted(session);
324  return;
325  }
326 
327  } else {
328  invalidRequest();
329  }
330 
331  if (externalConsentGatheringService.isEnabled()) {
333  log.trace("Consent-gathered flow passed successfully");
334  permissionGranted(session);
335  return;
336  }
337 
338  log.trace("Starting external consent-gathering flow");
339 
340  boolean result = consentGatherer.configure(session.getUserDn(), clientId, state);
341  if (!result) {
342  log.error("Failed to initialize external consent-gathering flow.");
344  return;
345  }
346  }
347 
348  return;
349  }
String sessionId
Definition: AuthorizeAction.java:158
AUTHENTICATED
Definition: SessionIdState.java:16
String getErrorAsJson(IErrorType p_type)
Definition: ErrorResponseFactory.java:86
static Prompt fromString(String param)
Definition: Prompt.java:57
void addPermission(String clientId, Boolean granted)
Definition: SessionId.java:188
FacesService facesService
Definition: AuthorizeAction.java:110
UNAUTHENTICATED
Definition: SessionIdState.java:16
void permissionDenied()
Definition: AuthorizeAction.java:723
Definition: AcrChangedException.java:8
Definition: SessionId.java:33
SessionIdState getState()
Definition: SessionId.java:120
CONSENT
Definition: Prompt.java:36
static String implode(String[] inputArray, String glueString)
Definition: StringUtils.java:56
SessionIdService sessionIdService
Definition: AuthorizeAction.java:80
PAIRWISE
Definition: SubjectType.java:14
String getClientId()
Definition: Client.java:275
CustomScriptConfiguration getDefaultExternalAuthenticator(AuthenticationScriptUsageType usageType)
Definition: ExternalAuthenticationService.java:386
static boolean isTrue(Boolean booleanObject)
Definition: ServerUtil.java:66
Logger log
Definition: AuthorizeAction.java:71
Boolean getSkipAuthorizationForOpenIdScopeAndPairwiseId()
Definition: AppConfiguration.java:920
String allowedScope
Definition: AuthorizeAction.java:160
boolean persistSessionId(final SessionId sessionId)
Definition: SessionIdService.java:510
String getSessionState()
Definition: SessionId.java:128
String LOGIN_HINT
Definition: AuthorizeRequestParam.java:29
ScopeChecker scopeChecker
Definition: AuthorizeAction.java:131
NetworkService networkService
Definition: AuthorizeAction.java:104
SessionId assertAuthenticatedSessionCorrespondsToNewRequest(SessionId session, String acrValuesStr)
Definition: SessionIdService.java:126
String redirectUri
Definition: AuthorizeAction.java:137
String getUserDn()
Definition: SessionId.java:152
ExternalContext externalContext
Definition: AuthorizeAction.java:119
Definition: Base64Util.java:7
Definition: ClientAuthorizations.java:14
ConsentGathererService consentGatherer
Definition: AuthorizeAction.java:122
Definition: JwtClaimName.java:13
RedirectionUriService redirectionUriService
Definition: AuthorizeAction.java:86
FacesContext facesContext
Definition: AuthorizeAction.java:116
Map< String, String > getAllowedParameters(@Nonnull final Map< String, String > requestParameterMap)
Definition: RequestParameterService.java:81
ClientAuthorizationsService clientAuthorizationsService
Definition: AuthorizeAction.java:89
String state
Definition: AuthorizeAction.java:138
Definition: SubjectType.java:12
boolean isForceReAuthentication()
Definition: AcrChangedException.java:32
String acrValues
Definition: AuthorizeAction.java:149
Object getAttribute(String userAttribute, boolean optional)
Definition: SimpleUser.java:23
boolean getPersistClientAuthorizations()
Definition: Client.java:1074
NONE
Definition: Prompt.java:27
void permissionGranted()
Definition: AuthorizeAction.java:713
static final String AUTHENTICATION_CONTEXT_CLASS_REFERENCE
Definition: JwtClaimName.java:80
ClientService clientService
Definition: AuthorizeAction.java:74
static final String REMOTE_IP
Definition: Constants.java:30
Definition: AuthorizeRequestParam.java:13
String clientId
Definition: AuthorizeAction.java:136
void invalidRequest()
Definition: AuthorizeAction.java:733
Boolean getTrustedClientEnabled()
Definition: AppConfiguration.java:912
String prompt
Definition: AuthorizeAction.java:144
String getId()
Definition: SessionId.java:136
void setSessionAttributes(Map< String, String > sessionAttributes)
Definition: SessionId.java:203
boolean isConsentGathered()
Definition: ConsentGathererService.java:269
INVALID_REQUEST_REDIRECT_URI
Definition: AuthorizeErrorResponseType.java:68
static boolean noNonePrompt(List< Prompt > prompts)
Definition: AuthorizeParamsValidator.java:56
Definition: StringUtils.java:24
SessionId handleAcrChange(SessionId session, List< Prompt > prompts)
Definition: AuthorizeAction.java:351
Definition: AuthorizeParamsValidator.java:25
AuthenticationMode defaultAuthenticationMode
Definition: AuthorizeAction.java:98
ExternalAuthenticationService externalAuthenticationService
Definition: AuthorizeAction.java:92
Definition: ServerUtil.java:50
Definition: SessionIdState.java:14
String [] getScopes()
Definition: ClientAuthorizations.java:52
Definition: Prompt.java:18
boolean configure(String userDn, String clientId, String state)
Definition: ConsentGathererService.java:74
void createSessionIdCookie(String sessionId, String sessionState, HttpServletResponse httpResponse, String cookieName)
Definition: SessionIdService.java:284
AppConfiguration appConfiguration
Definition: AuthorizeAction.java:107
Definition: User.java:23
Set< Client > getClient(Collection< String > clientIds, boolean silent)
Definition: ClientService.java:123
RequestParameterService requestParameterService
Definition: AuthorizeAction.java:128
String getSubjectType()
Definition: Client.java:699
static List< String > spaceSeparatedToList(String spaceSeparatedString)
Definition: StringUtils.java:115
Definition: AuthorizeErrorResponseType.java:16
boolean hasOnlyOpenidScope()
Definition: AuthorizeAction.java:833
String executeExternalGetPageForStep(CustomScriptConfiguration customScriptConfiguration, int step)
Definition: ExternalAuthenticationService.java:253
SessionId generateUnauthenticatedSessionId(String userDn)
Definition: SessionIdService.java:405
SessionId getSession()
Definition: AuthorizeAction.java:372
User getUserByDn(String dn, String... returnAttributes)
Definition: UserService.java:66
Definition: Constants.java:14
UserService userService
Definition: AuthorizeAction.java:83
boolean getTrustedClient()
Definition: Client.java:1050
boolean isEnabled(AuthenticationScriptUsageType usageType)
Definition: ExternalAuthenticationService.java:280
String validateRedirectionUri(String clientIdentifier, String redirectionUri)
Definition: RedirectionUriService.java:50
String scope
Definition: AuthorizeAction.java:134
Set< String > checkScopesPolicy(Client client, String scope)
Definition: ScopeChecker.java:39
CustomScriptConfiguration determineCustomScriptConfiguration(AuthenticationScriptUsageType usageType, int authStep, String acr)
Definition: ExternalAuthenticationService.java:301
List< String > acrValuesList(String acrValues)
Definition: SessionIdService.java:759
ExternalConsentGatheringService externalConsentGatheringService
Definition: AuthorizeAction.java:95
ErrorResponseFactory errorResponseFactory
Definition: AuthorizeAction.java:77
String getName()
Definition: AuthenticationMode.java:24
ClientAuthorizations findClientAuthorizations(String userInum, String clientId, boolean persistInLdap)
Definition: ClientAuthorizationsService.java:68

◆ checkUiLocales()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.checkUiLocales ( )
inline
162  {
163  List<String> uiLocalesList = null;
164  if (StringUtils.isNotBlank(uiLocales)) {
165  uiLocalesList = Util.splittedStringAsList(uiLocales, " ");
166 
167  List<Locale> supportedLocales = new ArrayList<Locale>();
168  for (Iterator<Locale> it = facesContext.getApplication().getSupportedLocales(); it.hasNext(); ) {
169  supportedLocales.add(it.next());
170  }
171  Locale matchingLocale = LocaleUtil.localeMatch(uiLocalesList, supportedLocales);
172 
173  if (matchingLocale != null)
174  languageBean.setLocaleCode(matchingLocale.getLanguage());
175  } else {
176  Locale defaultLocale = facesContext.getApplication().getDefaultLocale();
177  if (defaultLocale != null) {
178  languageBean.setLocaleCode(defaultLocale.getLanguage());
179  }
180  }
181  }
static List< String > splittedStringAsList(String p_string, String p_delimiter)
Definition: Util.java:178
void setLocaleCode(String localeCode)
Definition: LanguageBean.java:46
FacesContext facesContext
Definition: AuthorizeAction.java:116
LanguageBean languageBean
Definition: AuthorizeAction.java:101
String uiLocales
Definition: AuthorizeAction.java:146
Definition: Util.java:40

◆ consentRequired()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.consentRequired ( )
inline
749  {
750  StringBuilder sb = new StringBuilder();
751 
752  sb.append(redirectUri);
753  if (redirectUri != null && redirectUri.contains("?")) {
754  sb.append("&");
755  } else {
756  sb.append("?");
757  }
759 
760  facesService.redirectToExternalURL(sb.toString());
761  }
FacesService facesService
Definition: AuthorizeAction.java:110
CONSENT_REQUIRED
Definition: AuthorizeErrorResponseType.java:98
String getErrorAsQueryString(IErrorType p_type, String p_state)
Definition: ErrorResponseFactory.java:126
String redirectUri
Definition: AuthorizeAction.java:137
String getState()
Definition: AuthorizeAction.java:532
Definition: AuthorizeErrorResponseType.java:16
ErrorResponseFactory errorResponseFactory
Definition: AuthorizeAction.java:77

◆ containsParameter()

boolean org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.containsParameter ( String  url,
String  parameterName 
)
inlineprivate
820  {
821  return url.indexOf('?' + parameterName + '=') > 0 ||
822  url.indexOf('&' + parameterName + '=') > 0;
823  }

◆ encode()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.encode ( Object  value)
inlineprivate
825  {
826  try {
827  return URLEncoder.encode(String.valueOf(value), "UTF-8");
828  } catch (UnsupportedEncodingException iee) {
829  throw new RuntimeException(iee);
830  }
831  }

◆ encodeParameters()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.encodeParameters ( String  url,
Map< String, Object >  parameters 
)
inline
787  {
788  if (parameters.isEmpty()) return url;
789 
790  StringBuilder builder = new StringBuilder(url);
791  for (Map.Entry<String, Object> param : parameters.entrySet()) {
792  String parameterName = param.getKey();
793  if (!containsParameter(url, parameterName)) {
794  Object parameterValue = param.getValue();
795  if (parameterValue instanceof Iterable) {
796  for (Object value : (Iterable) parameterValue) {
797  builder.append('&')
798  .append(parameterName)
799  .append('=');
800  if (value != null) {
801  builder.append(encode(value));
802  }
803  }
804  } else {
805  builder.append('&')
806  .append(parameterName)
807  .append('=');
808  if (parameterValue != null) {
809  builder.append(encode(parameterValue));
810  }
811  }
812  }
813  }
814  if (url.indexOf('?') < 0) {
815  builder.setCharAt(url.length(), '?');
816  }
817  return builder.toString();
818  }
boolean containsParameter(String url, String parameterName)
Definition: AuthorizeAction.java:820
String encode(Object value)
Definition: AuthorizeAction.java:825

◆ getAcrValues()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getAcrValues ( )
inline
653  {
654  return acrValues;
655  }
String acrValues
Definition: AuthorizeAction.java:149

◆ getAmrValues()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getAmrValues ( )
inline
661  {
662  return amrValues;
663  }
String amrValues
Definition: AuthorizeAction.java:150

◆ getClaims()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getClaims ( )
inline
779  {
780  return claims;
781  }
String claims
Definition: AuthorizeAction.java:155

◆ getClientId()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getClientId ( )
inline

Returns the client identifier.

戻り値
The client identifier.
494  {
495  return clientId;
496  }
String clientId
Definition: AuthorizeAction.java:136

◆ getCodeChallenge()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getCodeChallenge ( )
inline
763  {
764  return codeChallenge;
765  }
String codeChallenge
Definition: AuthorizeAction.java:153

◆ getCodeChallengeMethod()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getCodeChallengeMethod ( )
inline
771  {
772  return codeChallengeMethod;
773  }
String codeChallengeMethod
Definition: AuthorizeAction.java:154

◆ getDisplay()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getDisplay ( )
inline

Returns an ASCII string value that specifies how the Authorization Server displays the authentication page to the End-User.

戻り値
The display value.
587  {
588  return display;
589  }
String display
Definition: AuthorizeAction.java:143

◆ getIdTokenHint()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getIdTokenHint ( )
inline
637  {
638  return idTokenHint;
639  }
String idTokenHint
Definition: AuthorizeAction.java:147

◆ getLoginHint()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getLoginHint ( )
inline
645  {
646  return loginHint;
647  }
String loginHint
Definition: AuthorizeAction.java:148

◆ getMaxAge()

Integer org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getMaxAge ( )
inline
621  {
622  return maxAge;
623  }
Integer maxAge
Definition: AuthorizeAction.java:145

◆ getNonce()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getNonce ( )
inline

Return a string value used to associate a user agent session with an ID Token, and to mitigate replay attacks.

戻り値
The nonce value.
568  {
569  return nonce;
570  }
String nonce
Definition: AuthorizeAction.java:142

◆ getPrompt()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getPrompt ( )
inline

Returns a space delimited list of ASCII strings that can contain the values login, consent, select_account, and none.

戻り値
A list of prompt options.
607  {
608  return prompt;
609  }
String prompt
Definition: AuthorizeAction.java:144

◆ getRedirectUri()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getRedirectUri ( )
inline

Returns the redirection URI.

戻り値
The redirection URI.
512  {
513  return redirectUri;
514  }
String redirectUri
Definition: AuthorizeAction.java:137

◆ getRequest()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getRequest ( )
inline

Returns a JWT encoded OpenID Request Object.

戻り値
A JWT encoded OpenID Request Object.
674  {
675  return request;
676  }
String request
Definition: AuthorizeAction.java:151

◆ getRequestedClaims()

List<String> org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getRequestedClaims ( )
inline
380  {
381  Set<String> result = new HashSet<String>();
382  String requestJwt = request;
383 
384  if (StringUtils.isBlank(requestJwt) && StringUtils.isNotBlank(requestUri)) {
385  try {
386  URI reqUri = new URI(requestUri);
387  String reqUriHash = reqUri.getFragment();
388  String reqUriWithoutFragment = reqUri.getScheme() + ":" + reqUri.getSchemeSpecificPart();
389 
390  ClientRequest clientRequest = new ClientRequest(reqUriWithoutFragment);
391  clientRequest.setHttpMethod(HttpMethod.GET);
392 
393  ClientResponse<String> clientResponse = clientRequest.get(String.class);
394  int status = clientResponse.getStatus();
395 
396  if (status == 200) {
397  String entity = clientResponse.getEntity(String.class);
398 
399  if (StringUtils.isBlank(reqUriHash)) {
400  requestJwt = entity;
401  } else {
403  if (StringUtils.equals(reqUriHash, hash)) {
404  requestJwt = entity;
405  }
406  }
407  }
408  } catch (NoSuchAlgorithmException e) {
409  log.error(e.getMessage(), e);
410  } catch (URISyntaxException e) {
411  log.error(e.getMessage(), e);
412  } catch (UnsupportedEncodingException e) {
413  log.error(e.getMessage(), e);
414  } catch (NoSuchProviderException e) {
415  log.error(e.getMessage(), e);
416  } catch (Exception e) {
417  log.error(e.getMessage(), e);
418  }
419  }
420 
421  if (StringUtils.isNotBlank(requestJwt)) {
422  try {
424 
425  if (client != null) {
426  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(appConfiguration, request, client);
427 
428  if (jwtAuthorizationRequest.getUserInfoMember() != null) {
429  for (Claim claim : jwtAuthorizationRequest.getUserInfoMember().getClaims()) {
430  result.add(claim.getName());
431  }
432  }
433 
434  if (jwtAuthorizationRequest.getIdTokenMember() != null) {
435  for (Claim claim : jwtAuthorizationRequest.getIdTokenMember().getClaims()) {
436  result.add(claim.getName());
437  }
438  }
439  }
440  } catch (EntryPersistenceException e) {
441  log.error(e.getMessage(), e);
442  } catch (InvalidJwtException e) {
443  log.error(e.getMessage(), e);
444  } catch (InvalidJweException e) {
445  log.error(e.getMessage(), e);
446  }
447  }
448 
449  return new ArrayList<String>(result);
450  }
List< Claim > getClaims()
Definition: UserInfoMember.java:61
Definition: Claim.java:12
UserInfoMember getUserInfoMember()
Definition: JwtAuthorizationRequest.java:420
List< Claim > getClaims()
Definition: IdTokenMember.java:58
Logger log
Definition: AuthorizeAction.java:71
Definition: JwtUtil.java:38
Definition: JwtAuthorizationRequest.java:48
String request
Definition: AuthorizeAction.java:151
String requestUri
Definition: AuthorizeAction.java:152
ClientService clientService
Definition: AuthorizeAction.java:74
String clientId
Definition: AuthorizeAction.java:136
IdTokenMember getIdTokenMember()
Definition: JwtAuthorizationRequest.java:428
Definition: Base64Util.java:19
static byte [] getMessageDigestSHA256(String data)
Definition: JwtUtil.java:69
Definition: InvalidJwtException.java:12
AppConfiguration appConfiguration
Definition: AuthorizeAction.java:107
static String base64urlencode(byte[] arg)
Definition: Base64Util.java:23
Set< Client > getClient(Collection< String > clientIds, boolean silent)
Definition: ClientService.java:123
Definition: InvalidJweException.java:12

◆ getRequestUri()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getRequestUri ( )
inline

Returns an URL that points to an OpenID Request Object.

戻り値
An URL that points to an OpenID Request Object.
692  {
693  return requestUri;
694  }
String requestUri
Definition: AuthorizeAction.java:152

◆ getResponseMode()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getResponseMode ( )
inline

Returns the mechanism to be used for returning parameters from the Authorization Endpoint.

戻り値
The response mode.
550  {
551  return responseMode;
552  }
String responseMode
Definition: AuthorizeAction.java:141

◆ getResponseType()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getResponseType ( )
inline

Returns the response type: code for requesting an authorization code (authorization code grant) or token for requesting an access token (implicit grant).

戻り値
The response type.
476  {
477  return responseType;
478  }
String responseType
Definition: AuthorizeAction.java:135

◆ getScope()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getScope ( )
inline

Returns the scope of the access request.

戻り値
The scope of the access request.
457  {
458  return scope;
459  }
String scope
Definition: AuthorizeAction.java:134

◆ getScopes()

List<org.xdi.oxauth.model.common.Scope> org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getScopes ( )
inline
376  {
378  }
String allowedScope
Definition: AuthorizeAction.java:160
AuthorizeService authorizeService
Definition: AuthorizeAction.java:125
List< org.xdi.oxauth.model.common.Scope > getScopes()
Definition: AuthorizeService.java:213

◆ getSession()

SessionId org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getSession ( )
inlineprivate
372  {
374  }
String sessionId
Definition: AuthorizeAction.java:158
SessionId getSession()
Definition: AuthorizeService.java:116
AuthorizeService authorizeService
Definition: AuthorizeAction.java:125

◆ getSessionId()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getSessionId ( )
inline
705  {
706  return sessionId;
707  }
String sessionId
Definition: AuthorizeAction.java:158

◆ getState()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getState ( )
inline

Returns an opaque value used by the client to maintain state between the request and callback. The authorization server includes this value when redirecting the user-agent back to the client. The parameter should be used for preventing cross-site request forgery.

戻り値
The state between the request and callback.
532  {
533  return state;
534  }
String state
Definition: AuthorizeAction.java:138

◆ getUiLocales()

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.getUiLocales ( )
inline
629  {
630  return uiLocales;
631  }
String uiLocales
Definition: AuthorizeAction.java:146

◆ handleAcrChange()

SessionId org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.handleAcrChange ( SessionId  session,
List< Prompt prompts 
)
inlineprivate
351  {
352  if (session != null) {
353  if (session.getState() == SessionIdState.AUTHENTICATED) {
354 
355  if (!prompts.contains(Prompt.LOGIN)) {
356  prompts.add(Prompt.LOGIN);
357  }
358  session.getSessionAttributes().put("prompt", org.xdi.oxauth.model.util.StringUtils.implode(prompts, " "));
360 
361  // Update Remote IP
362  String remoteIp = networkService.getRemoteIp();
363  session.getSessionAttributes().put(Constants.REMOTE_IP, remoteIp);
364 
366  sessionIdService.reinitLogin(session, false);
367  }
368  }
369  return session;
370  }
Map< String, String > getSessionAttributes()
Definition: SessionId.java:196
AUTHENTICATED
Definition: SessionIdState.java:16
UNAUTHENTICATED
Definition: SessionIdState.java:16
SessionIdState getState()
Definition: SessionId.java:120
static String implode(String[] inputArray, String glueString)
Definition: StringUtils.java:56
SessionIdService sessionIdService
Definition: AuthorizeAction.java:80
void reinitLogin(SessionId session, boolean force)
Definition: SessionIdService.java:169
NetworkService networkService
Definition: AuthorizeAction.java:104
Definition: Base64Util.java:7
static final String REMOTE_IP
Definition: Constants.java:30
Definition: StringUtils.java:24
Definition: SessionIdState.java:14
Definition: Prompt.java:18
boolean updateSessionId(final SessionId sessionId)
Definition: SessionIdService.java:534
void setState(SessionIdState state)
Definition: SessionId.java:124
Definition: Constants.java:14
LOGIN
Definition: Prompt.java:31

◆ hasOnlyOpenidScope()

boolean org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.hasOnlyOpenidScope ( )
inlineprivate
833  {
834  return getScopes() != null && getScopes().size() == 1 && getScopes().get(0).getDisplayName().equals("openid");
835  }
List< org.xdi.oxauth.model.common.Scope > getScopes()
Definition: AuthorizeAction.java:376

◆ invalidRequest()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.invalidRequest ( )
inline
733  {
734  log.trace("invalidRequest");
735  StringBuilder sb = new StringBuilder();
736 
737  sb.append(redirectUri);
738  if (redirectUri != null && redirectUri.contains("?")) {
739  sb.append("&");
740  } else {
741  sb.append("?");
742  }
744  getState()));
745 
746  facesService.redirectToExternalURL(sb.toString());
747  }
FacesService facesService
Definition: AuthorizeAction.java:110
String getErrorAsQueryString(IErrorType p_type, String p_state)
Definition: ErrorResponseFactory.java:126
Logger log
Definition: AuthorizeAction.java:71
String redirectUri
Definition: AuthorizeAction.java:137
String getState()
Definition: AuthorizeAction.java:532
Definition: AuthorizeErrorResponseType.java:16
INVALID_REQUEST
Definition: AuthorizeErrorResponseType.java:23
ErrorResponseFactory errorResponseFactory
Definition: AuthorizeAction.java:77

◆ permissionDenied()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.permissionDenied ( )
inline
723  {
724  final SessionId session = getSession();
726  }
void permissionDenied(final SessionId session)
Definition: AuthorizeService.java:185
Definition: SessionId.java:33
AuthorizeService authorizeService
Definition: AuthorizeAction.java:125
SessionId getSession()
Definition: AuthorizeAction.java:372

◆ permissionGranted() [1/2]

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.permissionGranted ( )
inline
713  {
714  final SessionId session = getSession();
715  permissionGranted(session);
716  }
Definition: SessionId.java:33
void permissionGranted()
Definition: AuthorizeAction.java:713
SessionId getSession()
Definition: AuthorizeAction.java:372

◆ permissionGranted() [2/2]

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.permissionGranted ( SessionId  session)
inline
718  {
719  final HttpServletRequest httpRequest = (HttpServletRequest) externalContext.getRequest();
720  authorizeService.permissionGranted(httpRequest, session);
721  }
ExternalContext externalContext
Definition: AuthorizeAction.java:119
void permissionGranted(HttpServletRequest httpRequest, final SessionId session)
Definition: AuthorizeService.java:140
AuthorizeService authorizeService
Definition: AuthorizeAction.java:125

◆ setAcrValues()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setAcrValues ( String  acrValues)
inline
657  {
658  this.acrValues = acrValues;
659  }
String acrValues
Definition: AuthorizeAction.java:149

◆ setAmrValues()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setAmrValues ( String  amrValues)
inline
665  {
666  this.amrValues = amrValues;
667  }
String amrValues
Definition: AuthorizeAction.java:150

◆ setClaims()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setClaims ( String  claims)
inline
783  {
784  this.claims = claims;
785  }
String claims
Definition: AuthorizeAction.java:155

◆ setClientId()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setClientId ( String  clientId)
inline

Sets the client identifier.

引数
clientIdThe client identifier.
503  {
504  this.clientId = clientId;
505  }
String clientId
Definition: AuthorizeAction.java:136

◆ setCodeChallenge()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setCodeChallenge ( String  codeChallenge)
inline
767  {
769  }
String codeChallenge
Definition: AuthorizeAction.java:153

◆ setCodeChallengeMethod()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setCodeChallengeMethod ( String  codeChallengeMethod)
inline
775  {
777  }
String codeChallengeMethod
Definition: AuthorizeAction.java:154

◆ setDisplay()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setDisplay ( String  display)
inline

Sets an ASCII string value that specifies how the Authorization Server displays the authentication page to the End-User.

引数
displayThe display value
597  {
598  this.display = display;
599  }
String display
Definition: AuthorizeAction.java:143

◆ setIdTokenHint()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setIdTokenHint ( String  idTokenHint)
inline
641  {
642  this.idTokenHint = idTokenHint;
643  }
String idTokenHint
Definition: AuthorizeAction.java:147

◆ setLoginHint()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setLoginHint ( String  loginHint)
inline
649  {
650  this.loginHint = loginHint;
651  }
String loginHint
Definition: AuthorizeAction.java:148

◆ setMaxAge()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setMaxAge ( Integer  maxAge)
inline
625  {
626  this.maxAge = maxAge;
627  }
Integer maxAge
Definition: AuthorizeAction.java:145

◆ setNonce()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setNonce ( String  nonce)
inline

Sets a string value used to associate a user agent session with an ID Token, and to mitigate replay attacks.

引数
nonceThe nonce value.
577  {
578  this.nonce = nonce;
579  }
String nonce
Definition: AuthorizeAction.java:142

◆ setPrompt()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setPrompt ( String  prompt)
inline

Sets a space delimited list of ASCII strings that can contain the values login, consent, select_account, and none.

引数
promptA list of prompt options.
617  {
618  this.prompt = prompt;
619  }
String prompt
Definition: AuthorizeAction.java:144

◆ setRedirectUri()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setRedirectUri ( String  redirectUri)
inline

Sets the redirection URI.

引数
redirectUriThe redirection URI.
521  {
522  this.redirectUri = redirectUri;
523  }
String redirectUri
Definition: AuthorizeAction.java:137

◆ setRequest()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setRequest ( String  request)
inline

Sets a JWT encoded OpenID Request Object.

引数
requestA JWT encoded OpenID Request Object.
683  {
684  this.request = request;
685  }
String request
Definition: AuthorizeAction.java:151

◆ setRequestUri()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setRequestUri ( String  requestUri)
inline

Sets an URL that points to an OpenID Request Object.

引数
requestUriAn URL that points to an OpenID Request Object.
701  {
702  this.requestUri = requestUri;
703  }
String requestUri
Definition: AuthorizeAction.java:152

◆ setResponseMode()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setResponseMode ( String  responseMode)
inline

Sets the mechanism to be used for returning parameters from the Authorization Endpoint.

引数
responseModeThe response mode.
559  {
560  this.responseMode = responseMode;
561  }
String responseMode
Definition: AuthorizeAction.java:141

◆ setResponseType()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setResponseType ( String  responseType)
inline

Sets the response type.

引数
responseTypeThe response type.
485  {
486  this.responseType = responseType;
487  }
String responseType
Definition: AuthorizeAction.java:135

◆ setScope()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setScope ( String  scope)
inline

Sets the scope of the access request.

引数
scopeThe scope of the access request.
466  {
467  this.scope = scope;
468  }
String scope
Definition: AuthorizeAction.java:134

◆ setSessionId()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setSessionId ( String  p_sessionId)
inline
709  {
710  sessionId = p_sessionId;
711  }
String sessionId
Definition: AuthorizeAction.java:158

◆ setState()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setState ( String  state)
inline

Sets the state between the request and callback.

引数
stateThe state between the request and callback.
541  {
542  this.state = state;
543  }
String state
Definition: AuthorizeAction.java:138

◆ setUiLocales()

void org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.setUiLocales ( String  uiLocales)
inline
633  {
634  this.uiLocales = uiLocales;
635  }
String uiLocales
Definition: AuthorizeAction.java:146

メンバ詳解

◆ acrValues

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.acrValues
private

◆ allowedScope

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.allowedScope
private

◆ amrValues

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.amrValues
private

◆ appConfiguration

AppConfiguration org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.appConfiguration
private

◆ authorizeService

AuthorizeService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.authorizeService
private

◆ claims

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.claims
private

◆ clientAuthorizationsService

ClientAuthorizationsService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.clientAuthorizationsService
private

◆ clientId

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.clientId
private

◆ clientService

ClientService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.clientService
private

◆ codeChallenge

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.codeChallenge
private

◆ codeChallengeMethod

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.codeChallengeMethod
private

◆ consentGatherer

ConsentGathererService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.consentGatherer
private

◆ defaultAuthenticationMode

AuthenticationMode org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.defaultAuthenticationMode
private

◆ display

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.display
private

◆ errorResponseFactory

ErrorResponseFactory org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.errorResponseFactory
private

◆ externalAuthenticationService

ExternalAuthenticationService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.externalAuthenticationService
private

◆ externalConsentGatheringService

ExternalConsentGatheringService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.externalConsentGatheringService
private

◆ externalContext

ExternalContext org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.externalContext
private

◆ facesContext

FacesContext org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.facesContext
private

◆ facesMessages

FacesMessages org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.facesMessages
private

◆ facesService

FacesService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.facesService
private

◆ idTokenHint

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.idTokenHint
private

◆ languageBean

LanguageBean org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.languageBean
private

◆ log

Logger org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.log
private

◆ loginHint

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.loginHint
private

◆ maxAge

Integer org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.maxAge
private

◆ networkService

NetworkService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.networkService
private

◆ nonce

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.nonce
private

◆ prompt

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.prompt
private

◆ redirectionUriService

RedirectionUriService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.redirectionUriService
private

◆ redirectUri

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.redirectUri
private

◆ request

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.request
private

◆ requestParameterService

RequestParameterService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.requestParameterService
private

◆ requestUri

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.requestUri
private

◆ responseMode

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.responseMode
private

◆ responseType

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.responseType
private

◆ scope

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.scope
private

◆ scopeChecker

ScopeChecker org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.scopeChecker
private

◆ sessionId

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.sessionId
private

◆ sessionIdService

SessionIdService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.sessionIdService
private

◆ state

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.state
private

◆ uiLocales

String org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.uiLocales
private

◆ userService

UserService org.xdi.oxauth.authorize.ws.rs.AuthorizeAction.userService
private

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