本文整理汇总了Java中com.nimbusds.oauth2.sdk.http.HTTPRequest类的典型用法代码示例。如果您正苦于以下问题:Java HTTPRequest类的具体用法?Java HTTPRequest怎么用?Java HTTPRequest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HTTPRequest类属于com.nimbusds.oauth2.sdk.http包,在下文中一共展示了HTTPRequest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createTokenRequest
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
private HTTPRequest createTokenRequest(ClientRegistration clientRegistration,
AuthorizationGrant authorizationCodeGrant, URI tokenUri,
ClientAuthentication clientAuthentication) throws MalformedURLException {
HTTPRequest httpRequest = new HTTPRequest(HTTPRequest.Method.GET, tokenUri.toURL());
httpRequest.setContentType(CommonContentTypes.APPLICATION_URLENCODED);
clientAuthentication.applyTo(httpRequest);
Map<String,String> params = httpRequest.getQueryParameters();
params.putAll(authorizationCodeGrant.toParameters());
if (clientRegistration.getScope() != null && !clientRegistration.getScope().isEmpty()) {
params.put("scope", clientRegistration.getScope().stream().reduce((a, b) -> a + " " + b).get());
}
if (clientRegistration.getClientId() != null) {
params.put("client_id", clientRegistration.getClientId());
}
httpRequest.setQuery(URLUtils.serializeParameters(params));
httpRequest.setAccept(MediaType.APPLICATION_JSON_VALUE);
httpRequest.setConnectTimeout(30000);
httpRequest.setReadTimeout(30000);
return httpRequest;
}
开发者ID:PacktPublishing,项目名称:OAuth-2.0-Cookbook,代码行数:22,代码来源:FacebookAuthorizationGrantTokenExchanger.java
示例2: applyTo
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
@Override
public void applyTo(final HTTPRequest httpRequest) {
if (httpRequest.getMethod() != HTTPRequest.Method.GET)
throw new SerializeException("The HTTP request method must be GET");
ContentType ct = httpRequest.getContentType();
if (ct == null)
throw new SerializeException("Missing HTTP Content-Type header");
if (! ct.match(CommonContentTypes.APPLICATION_URLENCODED))
throw new SerializeException("The HTTP Content-Type header must be "
+ CommonContentTypes.APPLICATION_URLENCODED);
Map<String,String> params = httpRequest.getQueryParameters();
params.putAll(toParameters());
String queryString = URLUtils.serializeParameters(params);
httpRequest.setQuery(queryString);
}
示例3: getClientRegistrations
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
@GetMapping
public void getClientRegistrations(HttpServletRequest request, HttpServletResponse response) throws Exception {
HTTPRequest httpRequest = ServletUtils.createHTTPRequest(request);
try {
String authorizationHeader = httpRequest.getAuthorization();
if (authorizationHeader == null) {
throw new GeneralException(BearerTokenError.INVALID_TOKEN);
}
BearerAccessToken requestAccessToken = BearerAccessToken.parse(authorizationHeader);
validateAccessToken(requestAccessToken);
List<OIDCClientInformation> clients = this.clientRepository.findAll();
response.setContentType("application/json; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.print(toJsonObject(clients).toJSONString());
writer.close();
}
catch (GeneralException e) {
ClientRegistrationResponse registrationResponse = new ClientRegistrationErrorResponse(e.getErrorObject());
ServletUtils.applyHTTPResponse(registrationResponse.toHTTPResponse(), response);
}
}
示例4: deleteClientConfiguration
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
@DeleteMapping(path = "/{id:.*}")
public void deleteClientConfiguration(HttpServletRequest request, HttpServletResponse response,
@PathVariable ClientID id) throws IOException {
HTTPRequest httpRequest = ServletUtils.createHTTPRequest(request);
try {
ClientDeleteRequest clientDeleteRequest = ClientDeleteRequest.parse(httpRequest);
resolveAndValidateClient(id, clientDeleteRequest);
this.clientRepository.deleteById(id);
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
}
catch (GeneralException e) {
ClientRegistrationResponse registrationResponse = new ClientRegistrationErrorResponse(e.getErrorObject());
ServletUtils.applyHTTPResponse(registrationResponse.toHTTPResponse(), response);
}
}
示例5: getLogoutPrompt
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
@GetMapping
public void getLogoutPrompt(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
if (request.getQueryString() != null) {
HTTPRequest httpRequest = ServletUtils.createHTTPRequest(request);
try {
LogoutRequest logoutRequest = LogoutRequest.parse(httpRequest.getQuery());
request.setAttribute("redirectUri", logoutRequest.getPostLogoutRedirectionURI());
request.setAttribute("state", logoutRequest.getState());
}
catch (ParseException ignored) {
}
}
request.getRequestDispatcher("/logout").forward(request, response);
}
示例6: userInfoRequest
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
@Override
public void userInfoRequest(RequestPath path, HttpServletRequest req, HttpServletResponse resp) throws IOException {
try {
logger.log("User Info requested.");
HTTPRequest httpReq = ServletUtils.createHTTPRequest(req);
UserInfoRequest userReq = UserInfoRequest.parse(httpReq);
logger.logHttpRequest(req, httpReq.getQuery());
UserInfoSuccessResponse uiResp = userInfoRequestInt(userReq, resp);
if (uiResp != null) {
sendResponse("User Info", uiResp, resp);
}
} catch (ParseException ex) {
logger.log("Error parsing User Info Request.", ex);
ErrorObject error = ex.getErrorObject();
BearerTokenError be = new BearerTokenError(error.getCode(), error.getDescription(), error.getHTTPStatusCode());
UserInfoErrorResponse errorResp = new UserInfoErrorResponse(be);
sendErrorResponse("User Info", errorResp, resp);
}
}
示例7: handle
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
@Override
public Response handle(HTTPRequest httpRequest, OIDCResourceReference reference) throws Exception
{
Issuer issuer = this.manager.getIssuer();
List<SubjectType> subjectTypes = Arrays.asList(SubjectType.PUBLIC);
URI jwkSetURI = this.manager.createEndPointURI(JWKOIDCEndpoint.HINT);
OIDCProviderMetadata metadata = new OIDCProviderMetadata(issuer, subjectTypes, jwkSetURI);
metadata.setAuthorizationEndpointURI(this.manager.createEndPointURI(AuthorizationOIDCEndpoint.HINT));
metadata.setTokenEndpointURI(this.manager.createEndPointURI(TokenOIDCEndpoint.HINT));
metadata.setUserInfoEndpointURI(this.manager.createEndPointURI(UserInfoOIDCEndpoint.HINT));
return new ContentResponse(CommonContentTypes.APPLICATION_JSON, metadata.toJSONObject().toString(),
HTTPResponse.SC_OK);
}
示例8: getConsent
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
private Boolean getConsent(HTTPRequest httpRequest)
{
Map<String, String> parameters = httpRequest.getQueryParameters();
// The user explicitly refused access to the client
if (parameters.get("consent_refuse") != null) {
return false;
}
// Check if user explicitly gave consent to the client
if (parameters.get("consent_accept") != null) {
String token = parameters.get("form_token");
if (this.csrf.isTokenValid(token)) {
return true;
} else {
// Looks like some client tried to hack consent
// TODO: log something ? ban the client ?
}
}
// Ask for user consent
return null;
}
示例9: 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);
}
示例10: exchange
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
@Override
public TokenResponseAttributes exchange(
AuthorizationCodeAuthenticationToken authorizationCodeAuthenticationToken)
throws OAuth2AuthenticationException {
ClientRegistration clientRegistration = authorizationCodeAuthenticationToken.getClientRegistration();
AuthorizationCode authorizationCode = new AuthorizationCode(
authorizationCodeAuthenticationToken.getAuthorizationCode());
AuthorizationGrant authorizationCodeGrant = new AuthorizationCodeGrant(
authorizationCode, URI.create(clientRegistration.getRedirectUri()));
URI tokenUri = URI.create(clientRegistration.getProviderDetails().getTokenUri());
ClientID clientId = new ClientID(clientRegistration.getClientId());
Secret clientSecret = new Secret(clientRegistration.getClientSecret());
ClientAuthentication clientAuthentication = new ClientSecretGet(clientId, clientSecret);
try {
HTTPRequest httpRequest = createTokenRequest(
clientRegistration, authorizationCodeGrant,
tokenUri, clientAuthentication);
TokenResponse tokenResponse = TokenResponse.parse(httpRequest.send());
if (!tokenResponse.indicatesSuccess()) {
OAuth2Error errorObject = new OAuth2Error("invalid_token_response");
throw new OAuth2AuthenticationException(errorObject, "error");
}
return createTokenResponse((AccessTokenResponse) tokenResponse);
} catch (MalformedURLException e) {
throw new SerializeException(e.getMessage(), e);
} catch (ParseException pe) {
throw new OAuth2AuthenticationException(new OAuth2Error("invalid_token_response"), pe);
} catch (IOException ioe) {
throw new AuthenticationServiceException(
"An error occurred while sending the Access Token Request: " +
ioe.getMessage(), ioe);
}
}
开发者ID:PacktPublishing,项目名称:OAuth-2.0-Cookbook,代码行数:43,代码来源:FacebookAuthorizationGrantTokenExchanger.java
示例11: 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);
}
}
}
示例12: tokenRequest
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
@Override
public void tokenRequest(RequestPath path, HttpServletRequest req, HttpServletResponse resp) throws IOException {
CompletableFuture<TestStepResult> blocker = (CompletableFuture<TestStepResult>) stepCtx.get(OPContextConstants.BLOCK_BROWSER_AND_TEST_RESULT);
try {
logger.log("Token requested.");
HTTPRequest httpReq = ServletUtils.createHTTPRequest(req);
TokenRequest tokenReq = TokenRequest.parse(httpReq);
logger.logHttpRequest(req, httpReq.getQuery());
if (type == OPType.EVIL) {
AuthorizationGrant grant = tokenReq.getAuthorizationGrant();
if (grant != null && grant.getType() == GrantType.AUTHORIZATION_CODE) {
AuthorizationCodeGrant codeGrant = (AuthorizationCodeGrant) grant;
AuthorizationCode code = codeGrant.getAuthorizationCode();
// TODO compare actual code
AuthorizationCode honestCode = (AuthorizationCode) stepCtx.get(OPContextConstants.HONEST_CODE);
if (code.equals(honestCode)) {
logger.log("Honest code received in attacker.");
blocker.complete(TestStepResult.FAIL);
} else {
logger.log("Honest code not received in attacker.");
blocker.complete(TestStepResult.PASS);
}
return;
}
}
blocker.complete(TestStepResult.PASS);
} catch (ParseException ex) {
ErrorObject error = OAuth2Error.INVALID_REQUEST;
TokenErrorResponse errorResp = new TokenErrorResponse(error);
sendErrorResponse("Token", errorResp, resp);
blocker.complete(TestStepResult.UNDETERMINED);
}
}
示例13: handle
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
@Override
public Response handle(HTTPRequest httpRequest, OIDCResourceReference reference) throws Exception
{
// Parse the request
UserInfoRequest request = UserInfoRequest.parse(httpRequest);
// Get the token associated to the user
AccessToken accessToken = request.getAccessToken();
// UserInfoSuccessResponse
return null;
}
示例14: handle
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
@Override
public Response handle(HTTPRequest httpRequest, OIDCResourceReference reference) throws Exception
{
this.logger.debug("OIDC: Entering [token] endpoint");
// Parse the request
TokenRequest request = TokenRequest.parse(httpRequest);
AuthorizationGrant authorizationGrant = request.getAuthorizationGrant();
ClientID clientID = request.getClientID();
ClientAuthentication authentication = request.getClientAuthentication();
if (authentication != null) {
clientID = authentication.getClientID();
}
if (authorizationGrant.getType().requiresClientAuthentication()) {
// TODO: authenticate the client if needed
}
if (authorizationGrant.getType() == GrantType.AUTHORIZATION_CODE) {
AuthorizationCodeGrant grant = (AuthorizationCodeGrant) authorizationGrant;
this.logger.debug("OIDC.token: Grant request: code={} redirectionURI={} clientID={}",
grant.getAuthorizationCode(), grant.getRedirectionURI(), clientID);
OIDCConsent consent =
this.store.getConsent(clientID, grant.getRedirectionURI(), grant.getAuthorizationCode());
if (consent == null) {
return new TokenErrorResponse(OAuth2Error.INVALID_GRANT);
}
// Generate new access token if none exist
if (consent.getAccessToken() == null) {
// TODO: set a configurable lifespan ?
consent.setAccessToken(new BearerAccessToken());
// Store new access token
this.store.saveConsent(consent, "Store new OIDC access token");
}
// Get rid of the temporary authorization code
this.store.removeAuthorizationCode(grant.getAuthorizationCode());
JWT idToken = this.manager.createdIdToken(request.getClientID(), consent.getUserReference(), null,
consent.getClaims());
OIDCTokens tokens = new OIDCTokens(idToken, consent.getAccessToken(), null);
return new OIDCTokenResponse(tokens);
}
return new TokenErrorResponse(OAuth2Error.UNSUPPORTED_GRANT_TYPE);
}
示例15: askConsent
import com.nimbusds.oauth2.sdk.http.HTTPRequest; //导入依赖的package包/类
private Response askConsent(AuthorizationRequest request, HTTPRequest httpRequest, ClaimsRequest resolvedClaims)
throws Exception
{
// Set various information in the script context
Map<String, Object> oidc = new HashMap<>();
oidc.put("request", request);
oidc.put("httprequest", httpRequest);
oidc.put("resolvedClaims", resolvedClaims);
this.scripts.getScriptContext().setAttribute("oidc", oidc, ScriptContext.ENGINE_SCOPE);
return this.manager.executeTemplate("oidc/provider/consent.vm", request);
}