@Test public void deserializeCasAuthenticationTest() throws IOException, JSONException { CasAuthenticationToken token = mapper.readValue(CAS_TOKEN_JSON, CasAuthenticationToken.class); assertThat(token).isNotNull(); assertThat(token.getPrincipal()).isNotNull().isInstanceOf(User.class); assertThat(((User) token.getPrincipal()).getUsername()).isEqualTo("admin"); assertThat(((User) token.getPrincipal()).getPassword()).isEqualTo("1234"); assertThat(token.getUserDetails()).isNotNull().isInstanceOf(User.class); assertThat(token.getAssertion()).isNotNull().isInstanceOf(AssertionImpl.class); assertThat(token.getKeyHash()).isEqualTo(KEY.hashCode()); assertThat(token.getUserDetails().getAuthorities()) .extracting(GrantedAuthority::getAuthority) .containsOnly("ROLE_USER"); assertThat(token.getAssertion().getAuthenticationDate()).isEqualTo(START_DATE); assertThat(token.getAssertion().getValidFromDate()).isEqualTo(START_DATE); assertThat(token.getAssertion().getValidUntilDate()).isEqualTo(END_DATE); assertThat(token.getAssertion().getPrincipal().getName()).isEqualTo("assertName"); assertThat(token.getAssertion().getAttributes()).hasSize(0); }
SecurityContext ctx=SecurityContextHolder.getContext(); CasAuthenticationToken casToken=(CasAuthenticationToken) ctx.getAuthentication(); Assertion assertion=casToken.getAssertion(); user_fullName=(String) assertion.getAttributes().get("FullName");
protected void customParseResponse(final String response, final Assertion assertion) throws TicketValidationException { final List proxies = XmlUtils.getTextForElements(response, "proxy"); final String[] proxiedList = (String[]) proxies.toArray(new String[proxies.size()]); if (proxiedList.length>0) { assertion.getAttributes().put(GeoServerCasConstants.CAS_PROXYLIST_KEY, proxiedList); LOGGER.info("Proxy ticket validated"); } else { LOGGER.info("Service ticket validated"); } // this means there was nothing in the proxy chain, which is okay if (proxies == null || proxies.isEmpty() || this.acceptAnyProxy) { return; } if (allowedProxyChains.contains(proxiedList)) { return; } throw new InvalidProxyChainTicketValidationException("Invalid proxy chain: " + proxies.toString()); }
/** * Log cas validation assertion. * * @param assertion the assertion */ protected void logCasValidationAssertion(final Assertion assertion) { LOGGER.debug("CAS Assertion Valid: [{}]", assertion.isValid()); LOGGER.debug("CAS Assertion Principal: [{}]", assertion.getPrincipal().getName()); LOGGER.debug("CAS Assertion authentication Date: [{}]", assertion.getAuthenticationDate()); LOGGER.debug("CAS Assertion ValidFrom Date: [{}]", assertion.getValidFromDate()); LOGGER.debug("CAS Assertion ValidUntil Date: [{}]", assertion.getValidUntilDate()); LOGGER.debug("CAS Assertion Attributes: [{}]", assertion.getAttributes()); LOGGER.debug("CAS Assertion Principal Attributes: [{}]", assertion.getPrincipal().getAttributes()); }
private AttributeStatement buildAttributeStatement(final Object casAssertion, final RequestAbstractType authnRequest, final SamlRegisteredService service, final SamlRegisteredServiceServiceProviderMetadataFacade adaptor, final MessageContext messageContext) throws SamlException { val assertion = Assertion.class.cast(casAssertion); val attributes = new HashMap<String, Object>(assertion.getAttributes()); attributes.putAll(assertion.getPrincipal().getAttributes()); val encodedAttrs = this.samlAttributeEncoder.encodeAttributes(attributes, service); val resp = samlIdPProperties.getResponse(); val nameFormats = new HashMap<String, String>(resp.configureAttributeNameFormats()); nameFormats.putAll(service.getAttributeNameFormats()); return newAttributeStatement(encodedAttrs, service.getAttributeFriendlyNames(), nameFormats, resp.getDefaultAttributeNameFormat(), new SamlProfileSamlRegisteredServiceAttributeBuilder(service, adaptor, messageContext, samlObjectEncrypter)); } }
@Override @SneakyThrows public String build(final String serviceTicketId, final Service service) { val assertion = this.ticketValidator.validate(serviceTicketId, service.getId()); val attributes = new HashMap<String, Object>(assertion.getAttributes()); attributes.putAll(assertion.getPrincipal().getAttributes()); val validUntilDate = FunctionUtils.doIf( assertion.getValidUntilDate() != null, assertion::getValidUntilDate, () -> { val dt = ZonedDateTime.now().plusSeconds(expirationPolicy.getTimeToLive()); return DateTimeUtils.dateOf(dt); }) .get(); return buildJwt(serviceTicketId, service.getId(), assertion.getAuthenticationDate(), assertion.getPrincipal().getName(), validUntilDate, attributes); }
public void testCompleteConstructor() { final Assertion assertion = new AssertionImpl(CONST_PRINCIPAL, CONST_ATTRIBUTES); assertEquals(CONST_PRINCIPAL, assertion.getPrincipal()); assertEquals(CONST_ATTRIBUTES, assertion.getAttributes()); } }
public void testPrincipalConstructor() { final Assertion assertion = new AssertionImpl(CONST_PRINCIPAL); assertEquals(CONST_PRINCIPAL, assertion.getPrincipal()); assertTrue(assertion.getAttributes().isEmpty()); assertNull(assertion.getPrincipal().getProxyTicketFor("test")); }
final MessageContext messageContext) throws SamlException { val castedAssertion = org.jasig.cas.client.validation.Assertion.class.cast(casAssertion); val ticket = (SamlArtifactTicket) castedAssertion.getAttributes().get("artifact"); val artifactResponse = new ArtifactResponseBuilder().buildObject(); artifactResponse.setIssueInstant(DateTime.now());
.issueTime(assertion.getAuthenticationDate()) .subject(assertion.getPrincipal().getName()); assertion.getAttributes().forEach(claims::claim); assertion.getPrincipal().getAttributes().forEach(claims::claim);