public Object getPrincipal() { return this.assertion.getPrincipal().getName(); }
@SuppressWarnings("unchecked") @Override protected UserDetails loadUserDetails(final Assertion assertion) { final List<GrantedAuthority> grantedAuthorities = new ArrayList<>(); for (final String attribute : this.attributes) { final Object value = assertion.getPrincipal().getAttributes().get(attribute); if (value == null) { continue; } if (value instanceof List) { final List list = (List) value; for (final Object o : list) { grantedAuthorities.add(new SimpleGrantedAuthority( this.convertToUpperCase ? o.toString().toUpperCase() : o .toString())); } } else { grantedAuthorities.add(new SimpleGrantedAuthority( this.convertToUpperCase ? value.toString().toUpperCase() : value .toString())); } } return new User(assertion.getPrincipal().getName(), NON_EXISTENT_PASSWORD_VALUE, true, true, true, true, grantedAuthorities); }
@Test public void correctlyExtractsNamedAttributesFromAssertionAndConvertsThemToAuthorities() { GrantedAuthorityFromAssertionAttributesUserDetailsService uds = new GrantedAuthorityFromAssertionAttributesUserDetailsService( new String[] { "a", "b", "c", "d" }); uds.setConvertToUpperCase(false); Assertion assertion = mock(Assertion.class); AttributePrincipal principal = mock(AttributePrincipal.class); Map<String, Object> attributes = new HashMap<>(); attributes.put("a", Arrays.asList("role_a1", "role_a2")); attributes.put("b", "role_b"); attributes.put("c", "role_c"); attributes.put("d", null); attributes.put("someother", "unused"); when(assertion.getPrincipal()).thenReturn(principal); when(principal.getAttributes()).thenReturn(attributes); when(principal.getName()).thenReturn("somebody"); CasAssertionAuthenticationToken token = new CasAssertionAuthenticationToken( assertion, "ticket"); UserDetails user = uds.loadUserDetails(token); Set<String> roles = AuthorityUtils.authorityListToSet(user.getAuthorities()); assertThat(roles).containsExactlyInAnyOrder( "role_a1", "role_a2", "role_b", "role_c"); } }
@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); }
String username = principal.getName(); if (username != null) credentials.setUsername(username);
String userId = casPrincipal.getName(); log.debug("Validate ticket : {} in CAS server : {} to retrieve user : {}", new Object[]{ ticket, getCasServerUrlPrefix(), userId
@Override public String toString() { return principal.getName(); } }
public String getRemoteUser() { return principal != null ? this.principal.getName() : null; }
public Object getPrincipal() { return this.assertion.getPrincipal().getName(); }
public Object getPrincipal() { return this.assertion.getPrincipal().getName(); }
public void recoreUserHistory(ServletRequest request) { Assertion assertion = AssertionHolder.getAssertion(); AttributePrincipal principal = assertion.getPrincipal(); String infoSnapshot = principal.getName(); String[] info = infoSnapshot.split("\\|"); HashMap<String, String> user = new HashMap<String, String>(); user.put("username", info[0]); user.put("history", ((HttpServletRequest) request).getRequestURL().toString()); // StorageRepository.getStorageRepository().saveUser(user); }
/** */ @Override protected String getPreAuthenticatedPrincipalName(HttpServletRequest request) { Assertion assertion = getCASAssertion(request); if (assertion==null) return null; request.setAttribute(GeoServerCasConstants.CAS_ASSERTION_KEY,assertion); return assertion.getPrincipal().getName(); }
/** */ @Override protected String getPreAuthenticatedPrincipalName(HttpServletRequest request) { Assertion assertion = getCASAssertion(request); if (assertion == null) return null; request.setAttribute(GeoServerCasConstants.CAS_ASSERTION_KEY, assertion); return assertion.getPrincipal().getName(); }
@Test public void testConstructionFromSpringBean() throws TicketValidationException, UnsupportedEncodingException { final ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "classpath:cas20ProxyTicketValidator.xml"); final Cas20ProxyTicketValidator v = (Cas20ProxyTicketValidator) context.getBean("proxyTicketValidator"); final String USERNAME = "username"; final String RESPONSE = "<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'><cas:authenticationSuccess><cas:user>username</cas:user><cas:proxyGrantingTicket>PGTIOU-84678-8a9d...</cas:proxyGrantingTicket><cas:proxies><cas:proxy>proxy1</cas:proxy><cas:proxy>proxy2</cas:proxy><cas:proxy>proxy3</cas:proxy></cas:proxies></cas:authenticationSuccess></cas:serviceResponse>"; server.content = RESPONSE.getBytes(server.encoding); final Assertion assertion = v.validate("test", "test"); assertEquals(USERNAME, assertion.getPrincipal().getName()); } }
@Test public void testRegexProxyChainWithValidProxy() throws TicketValidationException, UnsupportedEncodingException { final List<String[]> list = new ArrayList<String[]>(); list.add(new String[] { "proxy1", "proxy2", "^proxy3/[a-z]*/" }); this.ticketValidator.setAllowedProxyChains(new ProxyList(list)); final String USERNAME = "username"; final String RESPONSE = "<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'><cas:authenticationSuccess><cas:user>username</cas:user><cas:proxyGrantingTicket>PGTIOU-84678-8a9d...</cas:proxyGrantingTicket><cas:proxies><cas:proxy>proxy1</cas:proxy><cas:proxy>proxy2</cas:proxy><cas:proxy>proxy3/abc/</cas:proxy></cas:proxies></cas:authenticationSuccess></cas:serviceResponse>"; server.content = RESPONSE.getBytes(server.encoding); final Assertion assertion = this.ticketValidator.validate("test", "test"); assertEquals(USERNAME, assertion.getPrincipal().getName()); }
@Test public void testYesResponseButNoPgt() throws TicketValidationException, UnsupportedEncodingException { final String USERNAME = "username"; final String RESPONSE = "<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'><cas:authenticationSuccess><cas:user>" + USERNAME + "</cas:user></cas:authenticationSuccess></cas:serviceResponse>"; server.content = RESPONSE.getBytes(server.encoding); final Assertion assertion = this.ticketValidator.validate("test", "test"); assertEquals(USERNAME, assertion.getPrincipal().getName()); }
@Test public void testYesResponse() throws TicketValidationException, UnsupportedEncodingException { server.content = "yes\nusername\n\n".getBytes(server.encoding); final Assertion assertion = this.ticketValidator.validate("testTicket", "myService"); assertEquals(CONST_USERNAME, assertion.getPrincipal().getName()); }
@Test public void testYesResponseButNoPgt() throws TicketValidationException, UnsupportedEncodingException { final String USERNAME = "username"; final String RESPONSE = "<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'><cas:authenticationSuccess><cas:user>" + USERNAME + "</cas:user></cas:authenticationSuccess></cas:serviceResponse>"; server.content = RESPONSE.getBytes(server.encoding); final Assertion assertion = this.ticketValidator.validate("test", "test"); assertEquals(USERNAME, assertion.getPrincipal().getName()); }
@Test public void testProxyChainWithValidProxy() throws TicketValidationException, UnsupportedEncodingException { final String USERNAME = "username"; final String RESPONSE = "<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'><cas:authenticationSuccess><cas:user>username</cas:user><cas:proxyGrantingTicket>PGTIOU-84678-8a9d...</cas:proxyGrantingTicket><cas:proxies><cas:proxy>proxy1</cas:proxy><cas:proxy>proxy2</cas:proxy><cas:proxy>proxy3</cas:proxy></cas:proxies></cas:authenticationSuccess></cas:serviceResponse>"; server.content = RESPONSE.getBytes(server.encoding); final Assertion assertion = this.ticketValidator.validate("test", "test"); assertEquals(USERNAME, assertion.getPrincipal().getName()); }
@Test public void testYesResponseWithPgt() throws TicketValidationException, UnsupportedEncodingException { final String USERNAME = "username"; final String PGTIOU = "testPgtIou"; final String PGT = "test"; final String RESPONSE = "<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'><cas:authenticationSuccess><cas:user>" + USERNAME + "</cas:user><cas:proxyGrantingTicket>" + PGTIOU + "</cas:proxyGrantingTicket></cas:authenticationSuccess></cas:serviceResponse>"; server.content = RESPONSE.getBytes(server.encoding); this.proxyGrantingTicketStorage.save(PGTIOU, PGT); final Assertion assertion = this.ticketValidator.validate("test", "test"); assertEquals(USERNAME, assertion.getPrincipal().getName()); // assertEquals(PGT, assertion.getProxyGrantingTicketId()); }