Project

General

Profile

« Previous | Next » 

Revision 62020

repository terms functionality

View differences:

AuthoritiesUpdater.java
10 10
import org.springframework.security.oauth2.common.exceptions.UnauthorizedClientException;
11 11
import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
12 12
import org.springframework.session.Session;
13
//import org.springframework.session.ExpiringSession;
14 13
import org.springframework.session.FindByIndexNameSessionRepository;
15 14
import org.springframework.stereotype.Service;
16 15

  
......
27 26
    @Autowired
28 27
    FindByIndexNameSessionRepository sessions;
29 28

  
30
    public void update(String email, Collection<? extends GrantedAuthority> authorities) {
29
    public void update(String id, Update update) {
31 30
        if (sessions != null) {
32 31
            Map<String, Session> map = sessions.
33
                    findByIndexNameAndIndexValue(FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, email);
32
                    findByIndexNameAndIndexValue(FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, id);
34 33
            if (map != null) {
35 34
                logger.debug(map.values().toArray().length);
36 35
                for (Session session : map.values()) {
......
40 39
                        Authentication authentication = securityContext.getAuthentication();
41 40
                        if (authentication instanceof OIDCAuthenticationToken) {
42 41
                            OIDCAuthenticationToken authOIDC = (OIDCAuthenticationToken) authentication;
43
                            logger.debug(authorities);
42
                            logger.debug(update.authorities(authOIDC.getAuthorities()));
44 43
                            securityContext.setAuthentication(new OIDCAuthenticationToken(authOIDC.getSub(), authOIDC.getIssuer(),
45
                                    authOIDC.getUserInfo(), authorities, authOIDC.getIdToken(),
44
                                    authOIDC.getUserInfo(), update.authorities(authOIDC.getAuthorities()), authOIDC.getIdToken(),
46 45
                                    authOIDC.getAccessTokenValue(), authOIDC.getRefreshTokenValue()));
47 46
                            logger.debug("Update authorities");
48 47
                            session.setAttribute(SPRING_SECURITY_CONTEXT_KEY, securityContext);
......
54 53
        }
55 54
    }
56 55

  
57
    public void update(String email, Update update) {
58
        Collection<? extends GrantedAuthority> authorities = update.authorities(SecurityContextHolder.getContext().getAuthentication().getAuthorities());
59
        this.update(email, authorities);
60
    }
61

  
62
    public void addRole(String email, GrantedAuthority role) {
63
        this.update(email, old -> {
56
    public void addRole(String id, GrantedAuthority role) {
57
        this.update(id, old -> {
64 58
            HashSet<GrantedAuthority> authorities = new HashSet<>(old);
65 59
            authorities.add(role);
66 60
            return authorities;
......
77 71
        }
78 72
    }
79 73

  
80
    public void removeRole(String email, GrantedAuthority role) {
81
        this.update(email, old -> {
74
    public void removeRole(String id, GrantedAuthority role) {
75
        this.update(id, old -> {
82 76
            HashSet<GrantedAuthority> authorities = new HashSet<>(old);
83 77
            authorities.remove(role);
84 78
            return authorities;

Also available in: Unified diff