Search in sources :

Example 41 with RegisteredService

use of org.apereo.cas.services.RegisteredService in project cas by apereo.

the class TokenWebApplicationServiceResponseBuilder method buildInternal.

@Override
protected WebApplicationService buildInternal(final WebApplicationService service, final Map<String, String> parameters) {
    final RegisteredService registeredService = this.servicesManager.findServiceBy(service);
    RegisteredServiceAccessStrategyUtils.ensureServiceAccessIsAllowed(service, registeredService);
    final boolean tokenAsResponse = RegisteredServiceProperty.RegisteredServiceProperties.TOKEN_AS_SERVICE_TICKET.isAssignedTo(registeredService);
    if (!tokenAsResponse) {
        return super.buildInternal(service, parameters);
    }
    final String jwt = generateToken(service, parameters);
    final TokenWebApplicationService jwtService = new TokenWebApplicationService(service.getId(), service.getOriginalUrl(), service.getArtifactId());
    jwtService.setFormat(service.getFormat());
    jwtService.setLoggedOutAlready(service.isLoggedOutAlready());
    parameters.put(CasProtocolConstants.PARAMETER_TICKET, jwt);
    return jwtService;
}
Also used : RegisteredService(org.apereo.cas.services.RegisteredService)

Example 42 with RegisteredService

use of org.apereo.cas.services.RegisteredService in project cas by apereo.

the class TokenAuthenticationAction method constructCredentialsFromRequest.

@Override
protected Credential constructCredentialsFromRequest(final RequestContext requestContext) {
    final HttpServletRequest request = WebUtils.getHttpServletRequestFromExternalWebflowContext(requestContext);
    final String authTokenValue = this.tokenRequestExtractor.extract(request);
    final Service service = WebUtils.getService(requestContext);
    if (StringUtils.isNotBlank(authTokenValue) && service != null) {
        try {
            final RegisteredService registeredService = this.servicesManager.findServiceBy(service);
            RegisteredServiceAccessStrategyUtils.ensureServiceAccessIsAllowed(service, registeredService);
            final Credential credential = new TokenCredential(authTokenValue, service);
            LOGGER.debug("Received token authentication request [{}] ", credential);
            return credential;
        } catch (final Exception e) {
            LOGGER.warn(e.getMessage(), e);
        }
    }
    return null;
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) TokenCredential(org.apereo.cas.token.authentication.TokenCredential) Credential(org.apereo.cas.authentication.Credential) RegisteredService(org.apereo.cas.services.RegisteredService) RegisteredService(org.apereo.cas.services.RegisteredService) Service(org.apereo.cas.authentication.principal.Service) TokenCredential(org.apereo.cas.token.authentication.TokenCredential)

Example 43 with RegisteredService

use of org.apereo.cas.services.RegisteredService in project cas by apereo.

the class FinalizeInterruptFlowAction method doExecute.

@Override
protected Event doExecute(final RequestContext requestContext) throws Exception {
    final RegisteredService registeredService = WebUtils.getRegisteredService(requestContext);
    final InterruptResponse response = InterruptUtils.getInterruptFrom(requestContext);
    if (response.isBlock()) {
        if (registeredService != null && registeredService.getAccessStrategy().getUnauthorizedRedirectUrl() != null) {
            final String url = registeredService.getAccessStrategy().getUnauthorizedRedirectUrl().toURL().toExternalForm();
            requestContext.getExternalContext().requestExternalRedirect(url);
            requestContext.getExternalContext().recordResponseComplete();
            return no();
        }
        throw new UnauthorizedServiceException(UnauthorizedServiceException.CODE_UNAUTHZ_SERVICE, "Denied");
    }
    return success();
}
Also used : RegisteredService(org.apereo.cas.services.RegisteredService) UnauthorizedServiceException(org.apereo.cas.services.UnauthorizedServiceException) InterruptResponse(org.apereo.cas.interrupt.InterruptResponse)

Example 44 with RegisteredService

use of org.apereo.cas.services.RegisteredService in project cas by apereo.

the class InquireInterruptAction method doExecute.

@Override
protected Event doExecute(final RequestContext requestContext) {
    final Authentication authentication = WebUtils.getAuthentication(requestContext);
    final Service service = WebUtils.getService(requestContext);
    final RegisteredService registeredService = WebUtils.getRegisteredService(requestContext);
    final InterruptResponse response = this.interruptInquirer.inquire(authentication, registeredService, service);
    if (response == null || !response.isInterrupt()) {
        return no();
    }
    InterruptUtils.putInterruptIn(requestContext, response);
    WebUtils.putPrincipal(requestContext, authentication.getPrincipal());
    return yes();
}
Also used : RegisteredService(org.apereo.cas.services.RegisteredService) Authentication(org.apereo.cas.authentication.Authentication) Service(org.apereo.cas.authentication.principal.Service) RegisteredService(org.apereo.cas.services.RegisteredService) InterruptResponse(org.apereo.cas.interrupt.InterruptResponse)

Example 45 with RegisteredService

use of org.apereo.cas.services.RegisteredService in project cas by apereo.

the class BaseLdapServiceRegistryTests method verifyUpdatingServices.

@Test
public void verifyUpdatingServices() {
    this.dao.save(getRegexRegisteredService());
    final List<RegisteredService> services = this.dao.load();
    final AbstractRegisteredService rs = (AbstractRegisteredService) this.dao.findServiceById(services.get(0).getId());
    assertNotNull(rs);
    rs.setEvaluationOrder(9999);
    rs.setUsernameAttributeProvider(new DefaultRegisteredServiceUsernameProvider());
    rs.setName("Another Test Service");
    rs.setDescription("The new description");
    rs.setServiceId("https://hello.world");
    rs.setProxyPolicy(new RegexMatchingRegisteredServiceProxyPolicy("https"));
    rs.setAttributeReleasePolicy(new ReturnAllowedAttributeReleasePolicy());
    assertNotNull(this.dao.save(rs));
    final RegisteredService rs3 = this.dao.findServiceById(rs.getId());
    assertEquals(rs3.getName(), rs.getName());
    assertEquals(rs3.getDescription(), rs.getDescription());
    assertEquals(rs3.getEvaluationOrder(), rs.getEvaluationOrder());
    assertEquals(rs3.getUsernameAttributeProvider(), rs.getUsernameAttributeProvider());
    assertEquals(rs3.getProxyPolicy(), rs.getProxyPolicy());
    assertEquals(rs3.getUsernameAttributeProvider(), rs.getUsernameAttributeProvider());
    assertEquals(rs3.getServiceId(), rs.getServiceId());
}
Also used : RegexRegisteredService(org.apereo.cas.services.RegexRegisteredService) AbstractRegisteredService(org.apereo.cas.services.AbstractRegisteredService) SamlRegisteredService(org.apereo.cas.support.saml.services.SamlRegisteredService) OAuthRegisteredService(org.apereo.cas.support.oauth.services.OAuthRegisteredService) RegisteredService(org.apereo.cas.services.RegisteredService) DefaultRegisteredServiceUsernameProvider(org.apereo.cas.services.DefaultRegisteredServiceUsernameProvider) ReturnAllowedAttributeReleasePolicy(org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy) RegexMatchingRegisteredServiceProxyPolicy(org.apereo.cas.services.RegexMatchingRegisteredServiceProxyPolicy) AbstractRegisteredService(org.apereo.cas.services.AbstractRegisteredService) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Aggregations

RegisteredService (org.apereo.cas.services.RegisteredService)182 Authentication (org.apereo.cas.authentication.Authentication)59 Service (org.apereo.cas.authentication.principal.Service)55 Test (org.junit.Test)49 Principal (org.apereo.cas.authentication.principal.Principal)36 OAuthRegisteredService (org.apereo.cas.support.oauth.services.OAuthRegisteredService)31 MockHttpServletRequest (org.springframework.mock.web.MockHttpServletRequest)29 RegexRegisteredService (org.apereo.cas.services.RegexRegisteredService)23 AbstractRegisteredService (org.apereo.cas.services.AbstractRegisteredService)21 MultifactorAuthenticationProvider (org.apereo.cas.services.MultifactorAuthenticationProvider)20 MockHttpServletResponse (org.springframework.mock.web.MockHttpServletResponse)20 Event (org.springframework.webflow.execution.Event)20 ServicesManager (org.apereo.cas.services.ServicesManager)17 CentralAuthenticationService (org.apereo.cas.CentralAuthenticationService)15 AuthenticationException (org.apereo.cas.authentication.AuthenticationException)15 Map (java.util.Map)14 HttpServletRequest (javax.servlet.http.HttpServletRequest)14 Slf4j (lombok.extern.slf4j.Slf4j)14 Collection (java.util.Collection)13 HashMap (java.util.HashMap)12