X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthentication%2FJaasUserAccessor.java;fp=security%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthentication%2FJaasUserAccessor.java;h=0000000000000000000000000000000000000000;hb=9449ea0f360f6e9c14057db57f3ee0bfba947ab4;hp=0ac6aa730073d36f9f89654809b1d04f29a24b31;hpb=e8b988e92306a4aea2f047af1b48588147288831;p=utils diff --git a/security/impl/src/main/java/org/wamblee/security/authentication/JaasUserAccessor.java b/security/impl/src/main/java/org/wamblee/security/authentication/JaasUserAccessor.java deleted file mode 100644 index 0ac6aa73..00000000 --- a/security/impl/src/main/java/org/wamblee/security/authentication/JaasUserAccessor.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2005-2010 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.wamblee.security.authentication; - -import java.security.AccessController; -import java.security.Principal; - -import java.util.Set; - -import javax.security.auth.Subject; - -/** - * Implementation of the user accessor that retrieves user information from - * JAAS. - * - * @author Erik Brakkee - */ -public class JaasUserAccessor implements UserAccessor { - - /** - * Class of the JAAS user principal. - */ - private Class userPrincipalClass; - - /** - * Constructs user accessor. - * - * @param aAdmin - * User administration. - * @param aUserClassName - * Class name of the user principal. - */ - public JaasUserAccessor(String aUserClassName) { - try { - userPrincipalClass = Class.forName(aUserClassName); - - if (!Principal.class.isAssignableFrom(userPrincipalClass)) { - throw new IllegalArgumentException("Specified class '" + - aUserClassName + "' is not a subclass of '" + - Principal.class.getName()); - } - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); - } - } - - @Override - public String getCurrentUser() { - Subject subject = Subject.getSubject(AccessController.getContext()); - - if (subject == null) { - return null; - } - - Principal userPrincipal = getUserPrincipal(subject); - - return userPrincipal.getName(); - } - - /** - * Gets the user principal from the subject. - * - * @param aSubject - * Subject. - * - * @return User principal. - * - * @throws IllegalArgumentException - * In case there is a duplicate principal or the principal was - * not found. - */ - private Principal getUserPrincipal(Subject aSubject) { - Set principals = aSubject.getPrincipals(); - Principal userPrincipal = null; - - for (Principal principal : principals) { - if (principal.getClass().equals(userPrincipalClass)) { - if (userPrincipal != null) { - throw new IllegalArgumentException( - "Multiple principals for class '" + userPrincipalClass + - "', subject: " + aSubject); - } - - userPrincipal = principal; - } - } - - if (userPrincipal == null) { - throw new IllegalArgumentException( - "No user principal found for class '" + userPrincipalClass + - "', subject: " + aSubject); - } - - return userPrincipal; - } -}