2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
 
   4  * This program and the accompanying materials are made available under the
 
   5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 
   6  * and is available at http://www.eclipse.org/legal/epl-v10.html
 
   9 package org.opendaylight.aaa.authn.mdsal.store.util;
 
  11 import java.math.BigInteger;
 
  12 import java.util.ArrayList;
 
  13 import java.util.HashSet;
 
  14 import java.util.List;
 
  16 import org.opendaylight.aaa.AuthenticationBuilder;
 
  17 import org.opendaylight.aaa.api.Authentication;
 
  18 import org.opendaylight.aaa.api.Claim;
 
  19 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.TokenCacheTimes;
 
  20 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.Tokencache;
 
  21 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.token_cache_times.TokenList;
 
  22 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.token_cache_times.TokenListBuilder;
 
  23 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.token_cache_times.TokenListKey;
 
  24 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.token_cache_times.token_list.UserTokens;
 
  25 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.token_cache_times.token_list.UserTokensBuilder;
 
  26 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.token_cache_times.token_list.UserTokensKey;
 
  27 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.tokencache.Claims;
 
  28 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.tokencache.ClaimsBuilder;
 
  29 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.tokencache.ClaimsKey;
 
  30 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
  32 public class AuthNStoreUtil {
 
  34     public static InstanceIdentifier<Claims> createInstIdentifierForTokencache(String token) {
 
  35         if (token == null || token.length() == 0)
 
  38         InstanceIdentifier<Claims> claims_iid = InstanceIdentifier.builder(Tokencache.class)
 
  45     public static InstanceIdentifier<UserTokens> createInstIdentifierUserTokens(String userId,
 
  47         if (userId == null || userId.length() == 0 || token == null || token.length() == 0)
 
  50         InstanceIdentifier<UserTokens> userTokens_iid = InstanceIdentifier.builder(
 
  51                 TokenCacheTimes.class)
 
  52                                                                           .child(TokenList.class,
 
  55                                                                           .child(UserTokens.class,
 
  59         return userTokens_iid;
 
  62     public static Claims createClaimsRecord(String token, Authentication auth) {
 
  63         if (auth == null || token == null || token.length() == 0)
 
  66         ClaimsKey claimsKey = new ClaimsKey(token);
 
  67         ClaimsBuilder claimsBuilder = new ClaimsBuilder();
 
  68         claimsBuilder.setClientId(auth.clientId());
 
  69         claimsBuilder.setDomain(auth.domain());
 
  70         claimsBuilder.setKey(claimsKey);
 
  71         List<String> roles = new ArrayList<String>();
 
  72         roles.addAll(auth.roles());
 
  73         claimsBuilder.setRoles(roles);
 
  74         claimsBuilder.setToken(token);
 
  75         claimsBuilder.setUser(auth.user());
 
  76         claimsBuilder.setUserId(auth.userId());
 
  77         return claimsBuilder.build();
 
  80     public static UserTokens createUserTokens(String token, Long expiration) {
 
  81         if (expiration == null || token == null || token.length() == 0)
 
  84         UserTokensBuilder userTokensBuilder = new UserTokensBuilder();
 
  85         userTokensBuilder.setTokenid(token);
 
  86         BigInteger timestamp = BigInteger.valueOf(System.currentTimeMillis());
 
  87         userTokensBuilder.setTimestamp(timestamp);
 
  88         userTokensBuilder.setExpiration(expiration);
 
  89         userTokensBuilder.setKey(new UserTokensKey(token));
 
  90         return userTokensBuilder.build();
 
  93     public static TokenList createTokenList(UserTokens tokens, String userId) {
 
  94         if (tokens == null || userId == null || userId.length() == 0)
 
  97         TokenListBuilder tokenListBuilder = new TokenListBuilder();
 
  98         tokenListBuilder.setUserId(userId);
 
  99         tokenListBuilder.setKey(new TokenListKey(userId));
 
 100         List<UserTokens> userTokens = new ArrayList<UserTokens>();
 
 101         userTokens.add(tokens);
 
 102         tokenListBuilder.setUserTokens(userTokens);
 
 103         return tokenListBuilder.build();
 
 106     public static Authentication convertClaimToAuthentication(final Claims claims, Long expiration) {
 
 110         Claim claim = new Claim() {
 
 112             public String clientId() {
 
 113                 return claims.getClientId();
 
 117             public String userId() {
 
 118                 return claims.getUserId();
 
 122             public String user() {
 
 123                 return claims.getUser();
 
 127             public String domain() {
 
 128                 return claims.getDomain();
 
 132             public Set<String> roles() {
 
 133                 return new HashSet<>(claims.getRoles());
 
 136         AuthenticationBuilder authBuilder = new AuthenticationBuilder(claim);
 
 137         authBuilder.setExpiration(expiration);
 
 138         return authBuilder.build();