1 package org.collectionspace.authentication.spring;
3 import java.util.Collection;
5 import org.collectionspace.authentication.CSpaceUser;
6 import org.springframework.security.core.AuthenticatedPrincipal;
7 import org.springframework.security.core.GrantedAuthority;
8 import org.springframework.security.saml2.provider.service.authentication.Saml2AuthenticatedPrincipal;
9 import org.springframework.security.saml2.provider.service.authentication.Saml2Authentication;
11 import com.fasterxml.jackson.annotation.JsonAutoDetect;
12 import com.fasterxml.jackson.annotation.JsonCreator;
13 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
14 import com.fasterxml.jackson.annotation.JsonProperty;
15 import com.fasterxml.jackson.annotation.JsonTypeInfo;
18 * A Saml2Authentication whose principal is a CSpaceUser.
20 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY)
22 fieldVisibility = JsonAutoDetect.Visibility.ANY,
23 getterVisibility = JsonAutoDetect.Visibility.NONE,
24 isGetterVisibility = JsonAutoDetect.Visibility.NONE
26 @JsonIgnoreProperties(value = { "authenticated" }, ignoreUnknown = true)
27 public class CSpaceSaml2Authentication extends Saml2Authentication {
28 private final CSpaceUser user;
30 public CSpaceSaml2Authentication(CSpaceUser user, Saml2Authentication authentication) {
33 (Saml2AuthenticatedPrincipal) authentication.getPrincipal(),
34 authentication.getSaml2Response(),
35 authentication.getAuthorities()
39 public CSpaceSaml2Authentication(
41 AuthenticatedPrincipal principal,
42 java.lang.String saml2Response,
43 java.util.Collection<? extends GrantedAuthority> authorities
46 new Saml2AuthenticatedCSpaceUser((Saml2AuthenticatedPrincipal) principal, user),
54 public CSpaceSaml2Authentication(
55 @JsonProperty("user") Saml2AuthenticatedCSpaceUser user,
56 @JsonProperty("principal") AuthenticatedPrincipal principal,
57 @JsonProperty("saml2Response") java.lang.String saml2Response,
58 @JsonProperty("authorities") java.util.Collection<? extends GrantedAuthority> authorities
60 super(principal, saml2Response, authorities);
64 this.setAuthenticated(true);
68 public Object getPrincipal() {
73 public Collection<GrantedAuthority> getAuthorities() {
74 return user.getAuthorities();