Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.gov.serpro.security;
- import java.io.Serializable;
- import java.security.Principal;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.UUID;
- import br.gov.frameworkdemoiselle.security.TokenManager;
- public class AppTokenManager implements TokenManager {
- private TokenStore store = new TokenStore();
- @Override
- public String persist(Principal user) throws Exception {
- String token = store.get(user);
- if (token == null) {
- token = store.put(user);
- }
- return token;
- }
- @Override
- public Principal load(String token) throws Exception {
- return store.get(token);
- }
- public static class TokenStore implements Serializable {
- private static final long serialVersionUID = 1L;
- private Map<String, Principal> map = Collections.synchronizedMap(new HashMap<String, Principal>());
- public String put(Principal user) {
- String token = UUID.randomUUID().toString();
- if (map.containsValue(user)) {
- map.remove(token);
- }
- map.put(token, user);
- return token;
- }
- public String get(Principal user) {
- String result = null;
- if (map.containsValue(user)) {
- for (String key : map.keySet()) {
- if (map.get(key).equals(user)) {
- result = key;
- break;
- }
- }
- }
- return result;
- }
- public Principal get(String token) {
- return map.get(token);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement