use of org.forgerock.services.context.AttributesContext in project OpenAM by OpenRock.
the class AuthenticationServiceV1 method getHttpServletRequest.
/**
* Gets the HttpServletRequest from Restlet and wraps the HttpServletRequest with the URI realm as long as
* the request does not contain the realm as a query parameter.
*
* @return The HttpServletRequest
*/
private HttpServletRequest getHttpServletRequest(Context context, JsonValue jsonValue) {
AttributesContext requestContext = context.asContext(AttributesContext.class);
Map<String, Object> requestAttributes = requestContext.getAttributes();
final HttpServletRequest request = (HttpServletRequest) requestAttributes.get(HttpServletRequest.class.getName());
// The request contains the realm query param then use that over any realm parsed from the URI
final String queryParamRealm = request.getParameter(REALM);
if (queryParamRealm != null && !queryParamRealm.isEmpty()) {
RealmContext rc = new RealmContext(context);
rc.setOverrideRealm(queryParamRealm);
return wrapRequest(request, rc, jsonValue);
}
return wrapRequest(request, context.asContext(RealmContext.class), jsonValue);
}
use of org.forgerock.services.context.AttributesContext in project OpenAM by OpenRock.
the class AuthenticationServiceV2Test method shouldFailAuthenticationWithUnsupportedMediaTypeMessage.
@Test
public void shouldFailAuthenticationWithUnsupportedMediaTypeMessage() throws IOException {
// given
AttributesContext context = new AttributesContext(new SessionContext(new RootContext(), mock(Session.class)));
Request httpRequest = new Request();
httpRequest.setEntity("<xml></xml>");
httpRequest.getHeaders().put(ContentTypeHeader.NAME, "application/xml");
// when
Response response = authServiceV2.authenticate(context, httpRequest);
// then
assertThat(response.getStatus()).isEqualTo(Status.UNSUPPORTED_MEDIA_TYPE);
JsonValue responseBody = json(response.getEntity().getJson());
assertThat(responseBody).integerAt("code").isEqualTo(415);
assertThat(responseBody).stringAt("reason").isEqualTo("Unsupported Media Type");
assertThat(responseBody).stringAt("message").isEqualTo("Unsupported Media Type");
}
use of org.forgerock.services.context.AttributesContext in project OpenAM by OpenRock.
the class AuthenticationServiceV1Test method shouldFailAuthenticationWithUnsupportedMediaTypeMessage.
@Test
public void shouldFailAuthenticationWithUnsupportedMediaTypeMessage() throws IOException {
// given
AttributesContext context = new AttributesContext(new SessionContext(new RootContext(), mock(Session.class)));
Request httpRequest = new Request();
httpRequest.setEntity("<xml></xml>");
httpRequest.getHeaders().put(ContentTypeHeader.NAME, "application/xml");
// when
Response response = authServiceV1.authenticate(context, httpRequest);
// then
assertThat(response.getStatus()).isEqualTo(Status.UNSUPPORTED_MEDIA_TYPE);
assertThat(json(response.getEntity().getJson())).stringAt("errorMessage").isEqualTo("Unsupported Media Type");
}
use of org.forgerock.services.context.AttributesContext in project OpenAM by OpenRock.
the class SessionResourceTest method actionCollectionShouldLogoutSessionAndReturnEmptyJsonObjectWhenSSOTokenValid.
@Test
public void actionCollectionShouldLogoutSessionAndReturnEmptyJsonObjectWhenSSOTokenValid() throws SSOException {
//Given
cookieResponse = "SSO_TOKEN_ID";
final AttributesContext attrContext = new AttributesContext(new SessionContext(new RootContext(), mock(Session.class)));
final AdviceContext adviceContext = new AdviceContext(attrContext, Collections.<String>emptySet());
final SecurityContext securityContext = new SecurityContext(adviceContext, null, null);
final Context context = ClientContext.newInternalClientContext(new SSOTokenContext(mock(Debug.class), null, securityContext));
final ActionRequest request = mock(ActionRequest.class);
final SSOTokenID ssoTokenId = mock(SSOTokenID.class);
given(request.getAction()).willReturn(LOGOUT_ACTION_ID);
given(authUtilsWrapper.logout(ssoTokenId.toString(), null, null)).willReturn(true);
//When
Promise<ActionResponse, ResourceException> promise = sessionResource.actionCollection(context, request);
//Then
assertThat(promise).succeeded().withContent().stringAt("result").isEqualTo("Successfully logged out");
}
use of org.forgerock.services.context.AttributesContext in project OpenAM by OpenRock.
the class RestRouterIT method mockContext.
private Context mockContext(Context parent) {
if (parent == null) {
parent = new RootContext();
}
AttributesContext httpRequestContext = new AttributesContext(new SessionContext(parent, mock(Session.class)));
HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
httpRequestContext.getAttributes().put(HttpServletRequest.class.getName(), httpServletRequest);
return new RequestAuditContext(httpRequestContext);
}
Aggregations