]> git.argeo.org Git - lgpl/argeo-commons.git/blob - security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/OsAuthenticationProvider.java
JCR system session
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / core / OsAuthenticationProvider.java
1 package org.argeo.security.core;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.argeo.security.OsAuthenticationToken;
7 import org.springframework.security.Authentication;
8 import org.springframework.security.AuthenticationException;
9 import org.springframework.security.GrantedAuthority;
10 import org.springframework.security.GrantedAuthorityImpl;
11 import org.springframework.security.providers.AuthenticationProvider;
12
13 /** Validates an OS authentication. */
14 public class OsAuthenticationProvider implements AuthenticationProvider {
15 private String osUserRole = "ROLE_OS_USER";
16 private String userRole = "ROLE_USER";
17 private String adminRole = "ROLE_ADMIN";
18
19 private Boolean isAdmin = true;
20
21 public Authentication authenticate(Authentication authentication)
22 throws AuthenticationException {
23 if (!(authentication instanceof OsAuthenticationToken))
24 return null;
25
26 List<GrantedAuthority> auths = new ArrayList<GrantedAuthority>();
27 auths.add(new GrantedAuthorityImpl(osUserRole));
28 auths.add(new GrantedAuthorityImpl(userRole));
29 if (isAdmin)
30 auths.add(new GrantedAuthorityImpl(adminRole));
31 return new OsAuthenticationToken(
32 auths.toArray(new GrantedAuthority[auths.size()]));
33 }
34
35 @SuppressWarnings("rawtypes")
36 public boolean supports(Class authentication) {
37 return OsAuthenticationToken.class.isAssignableFrom(authentication);
38 }
39
40 public void setOsUserRole(String osUserRole) {
41 this.osUserRole = osUserRole;
42 }
43
44 public void setUserRole(String userRole) {
45 this.userRole = userRole;
46 }
47
48 public void setAdminRole(String adminRole) {
49 this.adminRole = adminRole;
50 }
51
52 public void setIsAdmin(Boolean isAdmin) {
53 this.isAdmin = isAdmin;
54 }
55
56 }