All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.cesecore.authentication.tokens.ApiKeyAuthenticationToken Maven / Gradle / Ivy

/*************************************************************************
 *                                                                       *
 *  EJBCA Community: The OpenSource Certificate Authority                *
 *                                                                       *
 *  This software is free software; you can redistribute it and/or       *
 *  modify it under the terms of the GNU Lesser General Public           *
 *  License as published by the Free Software Foundation; either         *
 *  version 2.1 of the License, or any later version.                    *
 *                                                                       *
 *  See terms of license at gnu.org.                                     *
 *                                                                       *
 *************************************************************************/

// SUBJECT FOR ECA-6877. LEAVE OUT UNTIL FINAL IMPLEMENTATION IS COMPLETE

package org.cesecore.authentication.tokens;

//import java.security.Principal;
//import java.util.HashSet;
//
//import org.apache.commons.lang.StringUtils;
//import org.cesecore.authentication.AuthenticationFailedException;
//import org.cesecore.authorization.user.AccessUserAspect;
//import org.cesecore.authorization.user.matchvalues.ApiKeyAccessMatchValue;
//import org.cesecore.keys.util.KeyTools;
//
///**
// * TODO Not done at all
// * @version $Id: ApiKeyAuthenticationToken.java 29044 2018-05-29 07:20:54Z henriks $
// *
// */
//public class ApiKeyAuthenticationToken extends AuthenticationToken {
//
//    private static final ApiKeyAuthenticationTokenMetaData metaData = new ApiKeyAuthenticationTokenMetaData();
//    
//    private static final long serialVersionUID = 1L;
//    
//    private final String apiKey;
//    private String apiKeyHash;
//
//    public ApiKeyAuthenticationToken(String apiKey) {
//        super(new HashSet() {
//            private static final long serialVersionUID = 1L;
//            {
//                // TODO We need some way to identify each API key
//                add(new UsernamePrincipal("API Key"));
//            }
//        }, null);
//        this.apiKey = apiKey;
//        this.apiKeyHash = generateSha256Hash(apiKey);
//    }
//
//    @Override
//    public boolean matches(AccessUserAspect accessUser) throws AuthenticationFailedException {
//        if (StringUtils.isEmpty(apiKeyHash)) {
//            return false;
//        }
//        if (matchTokenType(accessUser.getTokenType()) && accessUser.getMatchValue().equals(apiKeyHash)) {
//            return true;
//        }
//        return false;
//    }
//
//    @Override
//    public boolean equals(Object obj) {
//        if (this == obj)
//            return true;
//        if (obj == null)
//            return false;
//        if (getClass() != obj.getClass())
//            return false;
//        ApiKeyAuthenticationToken other = (ApiKeyAuthenticationToken) obj;
//        if (apiKey == null) {
//            if (other.apiKey != null)
//                return false;
//        } else if (!apiKey.equals(other.apiKey))
//            return false;
//        return true;
//    }
//
//    @Override
//    public int hashCode() {
//        final int prime = 31;
//        int result = 1;
//        result = prime * result + ((apiKey == null) ? 0 : apiKey.hashCode());
//        return result;
//    }
//
//    @Override
//    public AuthenticationTokenMetaData getMetaData() {
//        return metaData;
//    }
//
//    @Override
//    public int getPreferredMatchKey() {
//        return ApiKeyAccessMatchValue.API_KEY.getNumericValue();
//    }
//
//    @Override
//    public String getPreferredMatchValue() {
//        return apiKeyHash;
//    }
//
//    @Override
//    protected String generateUniqueId() {
//        return apiKeyHash;
//    }
//
//    public String getApiKeyHash() {
//        return apiKeyHash;
//    }
//    
//    private String generateSha256Hash(String input) {
//        return KeyTools.getSha256Fingerprint(input);
//    }
//}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy