Skip to content

Commit 0d34bfb

Browse files
committed
Adding user roles
1 parent dd9ac27 commit 0d34bfb

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.answerdigital.ers.auth;
2+
3+
import org.springframework.security.core.GrantedAuthority;
4+
import org.springframework.security.oauth2.core.user.OAuth2User;
5+
6+
import java.util.Collection;
7+
import java.util.Map;
8+
9+
public class Cis2User implements OAuth2User {
10+
11+
@Override
12+
public Map<String, Object> getAttributes() {
13+
return null;
14+
}
15+
16+
@Override
17+
public Collection<? extends GrantedAuthority> getAuthorities() {
18+
return null;
19+
}
20+
21+
@Override
22+
public String getName() {
23+
return null;
24+
}
25+
}

SmartcardAuth/src/main/java/com/answerdigital/ers/auth/WebSecurityConfig.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,18 @@
44
import org.springframework.context.annotation.Configuration;
55
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
66
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
7+
import org.springframework.security.core.GrantedAuthority;
8+
import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService;
9+
import org.springframework.security.oauth2.client.userinfo.OAuth2UserRequest;
10+
import org.springframework.security.oauth2.client.userinfo.OAuth2UserService;
11+
import org.springframework.security.oauth2.core.OAuth2AccessToken;
12+
import org.springframework.security.oauth2.core.user.DefaultOAuth2User;
13+
import org.springframework.security.oauth2.core.user.OAuth2User;
714
import org.springframework.security.web.SecurityFilterChain;
815

16+
import java.util.HashSet;
17+
import java.util.Set;
18+
919
@Configuration
1020
@EnableWebSecurity
1121
public class WebSecurityConfig {
@@ -21,4 +31,30 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
2131

2232
return http.build();
2333
}
34+
35+
private OAuth2UserService<OAuth2UserRequest, OAuth2User> oidcUserService() {
36+
final OAuth2UserService delegate = new DefaultOAuth2UserService();
37+
38+
return (userRequest) -> {
39+
OAuth2User user = delegate.loadUser(userRequest);
40+
41+
OAuth2AccessToken accessToken = userRequest.getAccessToken();
42+
Set<GrantedAuthority> mappedAuthorities = new HashSet<>();
43+
44+
45+
46+
Object rbac = user.getAttributes().get("nationalrbacaccess");
47+
48+
49+
50+
// TODO
51+
// 1) Fetch the authority information from the protected resource using accessToken
52+
// 2) Map the authority information to one or more GrantedAuthority's and add it to mappedAuthorities
53+
54+
// 3) Create a copy of oidcUser but use the mappedAuthorities instead
55+
user = new DefaultOAuth2User(mappedAuthorities, user.getAttributes(), "name");
56+
57+
return user;
58+
};
59+
}
2460
}

0 commit comments

Comments
 (0)