本文整理汇总了Java中com.nimbusds.oauth2.sdk.http.HTTPRequest.send方法的典型用法代码示例。如果您正苦于以下问题:Java HTTPRequest.send方法的具体用法?Java HTTPRequest.send怎么用?Java HTTPRequest.send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.nimbusds.oauth2.sdk.http.HTTPRequest
的用法示例。
在下文中一共展示了HTTPRequest.send方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: updateUserInfo
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入方法依赖的package包/类
public Principal updateUserInfo(URI userInfoEndpoint, IDTokenClaimsSet idToken, BearerAccessToken accessToken)
throws IOException, ParseException, OIDCException, XWikiException, QueryException
{
// Get OIDC user info
UserInfoRequest userinfoRequest = new UserInfoRequest(userInfoEndpoint, accessToken);
HTTPRequest userinfoHTTP = userinfoRequest.toHTTPRequest();
userinfoHTTP.setHeader("User-Agent", this.getClass().getPackage().getImplementationTitle() + '/'
+ this.getClass().getPackage().getImplementationVersion());
HTTPResponse httpResponse = userinfoHTTP.send();
UserInfoResponse userinfoResponse = UserInfoResponse.parse(httpResponse);
if (!userinfoResponse.indicatesSuccess()) {
UserInfoErrorResponse error = (UserInfoErrorResponse) userinfoResponse;
throw new OIDCException("Failed to get user info", error.getErrorObject());
}
UserInfoSuccessResponse userinfoSuccessResponse = (UserInfoSuccessResponse) userinfoResponse;
UserInfo userInfo = userinfoSuccessResponse.getUserInfo();
// Update/Create XWiki user
return updateUser(idToken, userInfo);
}
示例2: validate
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入方法依赖的package包/类
@Override
public void validate(final OidcCredentials credentials, final WebContext context) throws HttpAction {
init(context);
final AuthorizationCode code = credentials.getCode();
// if we have a code
if (code != null) {
try {
// Token request
final TokenRequest request = new TokenRequest(configuration.getProviderMetadata().getTokenEndpointURI(), this.clientAuthentication,
new AuthorizationCodeGrant(code, new URI(configuration.getCallbackUrl())));
HTTPRequest tokenHttpRequest = request.toHTTPRequest();
tokenHttpRequest.setConnectTimeout(configuration.getConnectTimeout());
tokenHttpRequest.setReadTimeout(configuration.getReadTimeout());
final HTTPResponse httpResponse = tokenHttpRequest.send();
logger.debug("Token response: status={}, content={}", httpResponse.getStatusCode(),
httpResponse.getContent());
final TokenResponse response = OIDCTokenResponseParser.parse(httpResponse);
if (response instanceof TokenErrorResponse) {
throw new TechnicalException("Bad token response, error=" + ((TokenErrorResponse) response).getErrorObject());
}
logger.debug("Token response successful");
final OIDCTokenResponse tokenSuccessResponse = (OIDCTokenResponse) response;
// save tokens in credentials
final OIDCTokens oidcTokens = tokenSuccessResponse.getOIDCTokens();
credentials.setAccessToken(oidcTokens.getAccessToken());
credentials.setRefreshToken(oidcTokens.getRefreshToken());
credentials.setIdToken(oidcTokens.getIDToken());
} catch (final URISyntaxException | IOException | ParseException e) {
throw new TechnicalException(e);
}
}
}
示例3: create
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入方法依赖的package包/类
@Override
@SuppressWarnings("unchecked")
public U create(final OidcCredentials credentials, final WebContext context) throws HttpAction {
init(context);
final AccessToken accessToken = credentials.getAccessToken();
// Create profile
final U profile = getProfileFactory().get();
profile.setAccessToken(accessToken);
final JWT idToken = credentials.getIdToken();
profile.setIdTokenString(idToken.getParsedString());
// Check if there is a refresh token
final RefreshToken refreshToken = credentials.getRefreshToken();
if (refreshToken != null && !refreshToken.getValue().isEmpty()) {
profile.setRefreshToken(refreshToken);
logger.debug("Refresh Token successful retrieved");
}
try {
// check idToken
final Nonce nonce;
if (configuration.isUseNonce()) {
nonce = new Nonce((String) context.getSessionAttribute(OidcConfiguration.NONCE_SESSION_ATTRIBUTE));
} else {
nonce = null;
}
// Check ID Token
final IDTokenClaimsSet claimsSet = this.idTokenValidator.validate(idToken, nonce);
assertNotNull("claimsSet", claimsSet);
profile.setId(claimsSet.getSubject());
// User Info request
if (configuration.getProviderMetadata().getUserInfoEndpointURI() != null && accessToken != null) {
final UserInfoRequest userInfoRequest = new UserInfoRequest(configuration.getProviderMetadata().getUserInfoEndpointURI(), (BearerAccessToken) accessToken);
final HTTPRequest userInfoHttpRequest = userInfoRequest.toHTTPRequest();
userInfoHttpRequest.setConnectTimeout(configuration.getConnectTimeout());
userInfoHttpRequest.setReadTimeout(configuration.getReadTimeout());
final HTTPResponse httpResponse = userInfoHttpRequest.send();
logger.debug("Token response: status={}, content={}", httpResponse.getStatusCode(),
httpResponse.getContent());
final UserInfoResponse userInfoResponse = UserInfoResponse.parse(httpResponse);
if (userInfoResponse instanceof UserInfoErrorResponse) {
logger.error("Bad User Info response, error={}",
((UserInfoErrorResponse) userInfoResponse).getErrorObject());
} else {
final UserInfoSuccessResponse userInfoSuccessResponse = (UserInfoSuccessResponse) userInfoResponse;
final UserInfo userInfo = userInfoSuccessResponse.getUserInfo();
if (userInfo != null) {
profile.addAttributes(userInfo.toJWTClaimsSet().getClaims());
}
}
}
// add attributes of the ID token if they don't already exist
for (final Map.Entry<String, Object> entry : idToken.getJWTClaimsSet().getClaims().entrySet()) {
final String key = entry.getKey();
final Object value = entry.getValue();
if (profile.getAttribute(key) == null) {
profile.addAttribute(key, value);
}
}
return profile;
} catch (final IOException | ParseException | JOSEException | BadJOSEException | java.text.ParseException e) {
throw new TechnicalException(e);
}
}
示例4: handle
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入方法依赖的package包/类
@Override
public Response handle(HTTPRequest httpRequest, OIDCResourceReference reference) throws Exception
{
// Parse the request
AuthorizationResponse authorizationResponse = AuthorizationResponse.parse(httpRequest);
// Validate state
State state = authorizationResponse.getState();
if (!Objects.equal(state, this.configuration.getSessionState())) {
throw new OIDCException("Invalid state [" + state + "]");
}
// TODO: remove the state from the session ?
// Deal with errors
if (!authorizationResponse.indicatesSuccess()) {
// Cast to error response
AuthorizationErrorResponse errorResponse = (AuthorizationErrorResponse) authorizationResponse;
// If impossible to authenticate without prompt, just ignore and redirect
if (OIDCError.INTERACTION_REQUIRED.getCode().equals(errorResponse.getErrorObject().getCode())
|| OIDCError.LOGIN_REQUIRED.getCode().equals(errorResponse.getErrorObject().getCode())) {
// Redirect to original request
return new RedirectResponse(new URI(authorizationResponse.getState().getValue()));
}
}
// Cast to success response
AuthorizationSuccessResponse successResponse = (AuthorizationSuccessResponse) authorizationResponse;
// Get authorization code
AuthorizationCode code = successResponse.getAuthorizationCode();
// Generate callback URL
URI callback = this.oidc.createEndPointURI(CallbackOIDCEndpoint.HINT);
// Get access token
AuthorizationGrant authorizationGrant = new AuthorizationCodeGrant(code, callback);
// TODO: setup some client authentication, secret, all that
TokenRequest tokeRequest = new TokenRequest(this.configuration.getTokenOIDCEndpoint(),
this.configuration.getClientID(), authorizationGrant);
HTTPRequest tokenHTTP = tokeRequest.toHTTPRequest();
tokenHTTP.setHeader("User-Agent", this.getClass().getPackage().getImplementationTitle() + '/'
+ this.getClass().getPackage().getImplementationVersion());
HTTPResponse httpResponse = tokenHTTP.send();
if (httpResponse.getStatusCode() != HTTPResponse.SC_OK) {
TokenErrorResponse error = TokenErrorResponse.parse(httpResponse);
throw new OIDCException("Failed to get access token", error.getErrorObject());
}
OIDCTokenResponse tokenResponse = OIDCTokenResponse.parse(httpResponse);
IDTokenClaimsSet idToken = new IDTokenClaimsSet(tokenResponse.getOIDCTokens().getIDToken().getJWTClaimsSet());
BearerAccessToken accessToken = tokenResponse.getTokens().getBearerAccessToken();
HttpSession session = ((ServletSession) this.container.getSession()).getHttpSession();
// Store the access token in the session
this.configuration.setIdToken(idToken);
this.configuration.setAccessToken(accessToken);
// Update/Create XWiki user
Principal principal = this.users.updateUserInfo(accessToken);
// Remember user in the session
session.setAttribute(SecurityRequestWrapper.PRINCIPAL_SESSION_KEY, principal);
// TODO: put enough information in the cookie to automatically authenticate when coming back
// Redirect to original request
return new RedirectResponse(this.configuration.getSuccessRedirectURI());
}