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

公開メンバ関数

 AuthClient ()
 
boolean isOpenIdDefaultAuthenticator ()
 
void init ()
 
String getName ()
 
String getRedirectionUrl (final WebContext context)
 
boolean isAuthorizationResponse (final WebContext context)
 
boolean isValidRequestState (final WebContext context)
 
final OpenIdCredentials getCredentials (final WebContext context)
 
UserProfile getUserProfile (final OpenIdCredentials credential, final WebContext context)
 
getAppConfiguration ()
 
OpenIdConfigurationResponse getOpenIdConfiguration ()
 

限定公開メンバ関数

void initInternal ()
 
CommonProfile retrieveUserProfileFromUserInfoResponse (final WebContext context, final UserInfoResponse userInfoResponse)
 
String getFirstClaim (final UserInfoResponse userInfoResponse, final String claimName)
 

非公開変数類

final Logger logger = LoggerFactory.getLogger(ClientAction.class)
 

詳解

This class is the oxAuth client to authenticate users and retrieve user profile

著者
Yuriy Movchan 11/14/2014

構築子と解体子

◆ AuthClient()

org.gluu.oxauth.cas.auth.client.AuthClient.AuthClient ( )
inline
27  {
28  super(CasConfiguration.instance());
29  }

関数詳解

◆ getAppConfiguration()

C org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.getAppConfiguration ( )
inlineinherited
355  {
356  return appConfiguration;
357  }
C appConfiguration
Definition: OpenIdClient.java:64

◆ getCredentials()

final OpenIdCredentials org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.getCredentials ( final WebContext  context)
inlineinherited

{}

246  {
247  final String authorizationCode = context.getRequestParameter(ResponseType.CODE.getValue());
248 
249  final OpenIdCredentials clientCredential = new OpenIdCredentials(authorizationCode);
250  clientCredential.setClientName(getName());
251  logger.debug("Client credential: '{}'", clientCredential);
252 
253  return clientCredential;
254  }
String getName()
Definition: OpenIdClient.java:178
final Logger logger
Definition: OpenIdClient.java:54

◆ getFirstClaim()

String org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.getFirstClaim ( final UserInfoResponse  userInfoResponse,
final String  claimName 
)
inlineprotectedinherited
345  {
346  final List<String> claims = userInfoResponse.getClaim(claimName);
347 
348  if ((claims == null) || claims.isEmpty()) {
349  return null;
350  }
351 
352  return claims.get(0);
353  }

◆ getName()

String org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.getName ( )
inlineinherited

{}

178  {
179  return this.getClass().getSimpleName();
180  }

◆ getOpenIdConfiguration()

OpenIdConfigurationResponse org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.getOpenIdConfiguration ( )
inlineinherited
359  {
360  return openIdConfiguration;
361  }
OpenIdConfigurationResponse openIdConfiguration
Definition: OpenIdClient.java:72

◆ getRedirectionUrl()

String org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.getRedirectionUrl ( final WebContext  context)
inlineinherited

{}

185  {
186  init();
187 
188  final String state = RandomStringUtils.randomAlphanumeric(10);
189  final String nonce = RandomStringUtils.randomAlphanumeric(10);
190 
191  final AuthorizationRequest authorizationRequest = new AuthorizationRequest(Arrays.asList(ResponseType.CODE), this.clientId, this.appConfiguration.getOpenIdScopes(),
192  this.appConfiguration.getOpenIdRedirectUrl(), null);
193 
194  authorizationRequest.setState(state);
195  authorizationRequest.setNonce(nonce);
196 
197  context.setSessionAttribute(getName() + STATE_PARAMETER, state);
198  context.setSessionAttribute(getName() + NONCE_PARAMETER, nonce);
199 
200  final String redirectionUrl = this.openIdConfiguration.getAuthorizationEndpoint() + "?" + authorizationRequest.getQueryString();
201  logger.debug("oxAuth redirection Url: '{}'", redirectionUrl);
202 
203  return redirectionUrl;
204  }
static final String NONCE_PARAMETER
Definition: OpenIdClient.java:57
void init()
Definition: OpenIdClient.java:82
static final String STATE_PARAMETER
Definition: OpenIdClient.java:56
OpenIdConfigurationResponse openIdConfiguration
Definition: OpenIdClient.java:72
String getName()
Definition: OpenIdClient.java:178
C appConfiguration
Definition: OpenIdClient.java:64
String getAuthorizationEndpoint()
Definition: OpenIdConfigurationResponse.java:174
String clientId
Definition: OpenIdClient.java:66
final Logger logger
Definition: OpenIdClient.java:54

◆ getUserProfile()

UserProfile org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.getUserProfile ( final OpenIdCredentials  credential,
final WebContext  context 
)
inlineinherited

{}

260  {
261  init();
262 
263  try {
264  final String accessToken = getAccessToken(credential);
265  final UserInfoResponse userInfoResponse = getUserInfo(accessToken);
266 
267  final UserProfile profile = retrieveUserProfileFromUserInfoResponse(context, userInfoResponse);
268  logger.debug("User profile: '{}'", profile);
269 
270  return profile;
271  } catch (final Exception ex) {
272  throw new CommunicationException(ex);
273  }
274  }
void init()
Definition: OpenIdClient.java:82
CommonProfile retrieveUserProfileFromUserInfoResponse(final WebContext context, final UserInfoResponse userInfoResponse)
Definition: OpenIdClient.java:305
String getAccessToken(final OpenIdCredentials credential)
Definition: OpenIdClient.java:276
UserInfoResponse getUserInfo(final String accessToken)
Definition: OpenIdClient.java:292
final Logger logger
Definition: OpenIdClient.java:54

◆ init()

void org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.init ( )
inlineinherited
82  {
83  super.init();
84  initClient();
85  }
void initClient()
Definition: OpenIdClient.java:122

◆ initInternal()

void org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.initInternal ( )
inlineprotectedinherited
87  {
88  this.clientId = appConfiguration.getOpenIdClientId();
89  this.clientSecret = appConfiguration.getOpenIdClientPassword();
90 
91  if (StringHelper.isNotEmpty(this.clientSecret)) {
92  try {
93  StringEncrypter stringEncrypter = StringEncrypter.instance(this.configuration.getCryptoConfigurationSalt());
94  this.clientSecret = stringEncrypter.decrypt(this.clientSecret);
95  } catch (EncryptionException ex) {
96  logger.warn("Assuming that client password is not encrypted!");
97  }
98  }
99 
100  this.preRegisteredClient = StringHelper.isNotEmpty(this.clientId) && StringHelper.isNotEmpty(this.clientSecret);
101 
103  }
boolean preRegisteredClient
Definition: OpenIdClient.java:70
C appConfiguration
Definition: OpenIdClient.java:64
String getCryptoConfigurationSalt()
Definition: Configuration.java:218
String clientSecret
Definition: OpenIdClient.java:67
String clientId
Definition: OpenIdClient.java:66
void loadOpenIdConfiguration()
Definition: OpenIdClient.java:105
final Logger logger
Definition: OpenIdClient.java:54
Configuration< C, L > configuration
Definition: OpenIdClient.java:74

◆ isAuthorizationResponse()

boolean org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.isAuthorizationResponse ( final WebContext  context)
inlineinherited

{}

210  {
211  final String authorizationCode = context.getRequestParameter(ResponseType.CODE.getValue());
212  logger.debug("oxAuth authorization code: '{}'", authorizationCode);
213 
214  final boolean result = StringHelper.isNotEmpty(authorizationCode);
215  logger.debug("Is authorization request: '{}'", result);
216 
217  return result;
218  }
final Logger logger
Definition: OpenIdClient.java:54

◆ isOpenIdDefaultAuthenticator()

boolean org.gluu.oxauth.cas.auth.client.AuthClient.isOpenIdDefaultAuthenticator ( )
inline
31  {
32  return getAppConfiguration().isOpenIdDefaultAuthenticator();
33  }
C getAppConfiguration()
Definition: OpenIdClient.java:355

◆ isValidRequestState()

boolean org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.isValidRequestState ( final WebContext  context)
inlineinherited

{}

224  {
225  final String state = context.getRequestParameter("state");
226  logger.debug("oxAuth request state: '{}'", state);
227 
228  final Object sessionState = context.getSessionAttribute(getName() + STATE_PARAMETER);
229  logger.debug("Session context state: '{}'", sessionState);
230 
231  final boolean emptySessionState = StringHelper.isEmptyString(sessionState);
232  if (emptySessionState) {
233  return false;
234  }
235 
236  final boolean result = StringHelper.equals(state, (String) sessionState);
237  logger.debug("Is valid state: '{}'", result);
238 
239  return result;
240  }
static final String STATE_PARAMETER
Definition: OpenIdClient.java:56
String getName()
Definition: OpenIdClient.java:178
final Logger logger
Definition: OpenIdClient.java:54

◆ retrieveUserProfileFromUserInfoResponse()

CommonProfile org.gluu.oxauth.client.OpenIdClient< C extends AppConfiguration, L extends LdapAppConfiguration >.retrieveUserProfileFromUserInfoResponse ( final WebContext  context,
final UserInfoResponse  userInfoResponse 
)
inlineprotectedinherited
305  {
306  final CommonProfile profile = new CommonProfile();
307 
308  String nonceResponse = getFirstClaim(userInfoResponse, JwtClaimName.NONCE);
309  final String nonceSession = (String) context.getSessionAttribute(getName() + NONCE_PARAMETER);
310  logger.debug("Session nonce: '{}'", nonceSession);
311  if (!StringHelper.equals(nonceSession, nonceResponse)) {
312  logger.error("User info response: nonce is not matching.");
313  throw new CommunicationException("Nonce is not match");
314  }
315 
316  String id = getFirstClaim(userInfoResponse, JwtClaimName.USER_NAME);
317  if (StringHelper.isEmpty(id)) {
318  id = getFirstClaim(userInfoResponse, JwtClaimName.SUBJECT_IDENTIFIER);
319  }
320  profile.setId(id);
321 
322  List<ClaimToAttributeMapping> claimMappings = this.appConfiguration.getOpenIdClaimMapping();
323  if ((claimMappings == null) || (claimMappings.size() == 0)) {
324  logger.info("Using default claims to attributes mapping");
325  profile.setUserName(id);
326  profile.setEmail(getFirstClaim(userInfoResponse, JwtClaimName.EMAIL));
327 
328  profile.setDisplayName(getFirstClaim(userInfoResponse, JwtClaimName.NAME));
329  profile.setFirstName(getFirstClaim(userInfoResponse, JwtClaimName.GIVEN_NAME));
330  profile.setFamilyName(getFirstClaim(userInfoResponse, JwtClaimName.FAMILY_NAME));
331  profile.setZone(getFirstClaim(userInfoResponse, JwtClaimName.ZONEINFO));
332  profile.setLocale(getFirstClaim(userInfoResponse, JwtClaimName.LOCALE));
333  } else {
334  for (ClaimToAttributeMapping mapping : claimMappings) {
335  String attribute = mapping.getAttribute();
336  String value = getFirstClaim(userInfoResponse, mapping.getClaim());
337  profile.addAttribute(attribute, value);
338  logger.trace("Adding attribute '{}' with value '{}'", attribute, value);
339  }
340  }
341 
342  return profile;
343  }
String getFirstClaim(final UserInfoResponse userInfoResponse, final String claimName)
Definition: OpenIdClient.java:345
static final String NONCE_PARAMETER
Definition: OpenIdClient.java:57
String getName()
Definition: OpenIdClient.java:178
C appConfiguration
Definition: OpenIdClient.java:64
final Logger logger
Definition: OpenIdClient.java:54

メンバ詳解

◆ logger

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

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