fix shiro logs looping issue
[aaf/cadi.git] / shiro / src / main / java / org / onap / aaf / cadi / shiro / AAFRealm.java
index 091c22b..0fc962f 100644 (file)
@@ -30,7 +30,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+
 import org.apache.log4j.PropertyConfigurator;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.authc.AuthenticationInfo;
@@ -51,9 +51,12 @@ import org.onap.aaf.cadi.config.Config;
 import org.onap.aaf.cadi.filter.MapBathConverter;
 import org.onap.aaf.cadi.util.CSV;
 import org.onap.aaf.misc.env.APIException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 public class AAFRealm extends AuthorizingRealm {
        
-       final static Logger logger = Logger.getLogger(AAFRealm.class);
+       final static  Logger logger =  LoggerFactory.getLogger(AAFRealm.class);
        
        public static final String AAF_REALM = "AAFRealm";
        
@@ -78,18 +81,9 @@ public class AAFRealm extends AuthorizingRealm {
                String cadi_prop_files = access.getProperty(Config.CADI_PROP_FILES);
                if(cadi_prop_files==null) {
                        String msg = Config.CADI_PROP_FILES + " in VM Args is required to initialize AAFRealm.";
-                       access.log(Level.INIT,msg);
+                       logger.info(msg);
                        throw new RuntimeException(msg);
                } else {
-                       try {
-                               String log4jConfigFile = "./etc/org.ops4j.pax.logging.cfg";
-                       PropertyConfigurator.configure(log4jConfigFile);
-                       System.setOut(createLoggingProxy(System.out));
-                       System.setErr(createLoggingProxy(System.err));
-                       } catch(Exception e) {
-                               e.printStackTrace();
-                       }
-                       //System.out.println("Configuration done");
                        try {
                                acon = AAFCon.newInstance(access);
                                authn = acon.newAuthn();
@@ -120,9 +114,10 @@ public class AAFRealm extends AuthorizingRealm {
                                                                }
                                                        }
                                                        idMap.put(oldID,newID);
+                                                       
                                                }
                                        } catch (IOException e) {
-                                               logger.error(e.getMessage(), e);
+                                               logger.info(e.getMessage(), e);
                                        }
                                }
                        } catch (APIException | CadiException | LocatorException e) {
@@ -134,19 +129,10 @@ public class AAFRealm extends AuthorizingRealm {
                supports = new HashSet<Class<? extends AuthenticationToken>>();
                supports.add(UsernamePasswordToken.class);
        }
-       public static PrintStream createLoggingProxy(final PrintStream realPrintStream) {
-        return new PrintStream(realPrintStream) {
-            public void print(final String string) {
-                realPrintStream.print(string);
-                logger.info(string);
-            }
-        };
-    }
 
        @Override
        protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
-               logger.debug("AAFRealm.doGetAuthenticationInfo :"+token);
-               
+               logger.info("AAFRealm.doGetAuthenticationInfo :"+token);
                final UsernamePasswordToken upt = (UsernamePasswordToken)token;
                final String user = upt.getUsername();
                String authUser = user; 
@@ -161,11 +147,13 @@ public class AAFRealm extends AuthorizingRealm {
                                        int colon = bath.indexOf(':');
                                        if(colon>=0) {
                                                authUser = bath.substring(0, colon);
-                                               authPassword = bath.substring(colon+1);
+                                               authPassword = bath.substring(colon+1); 
                                        }
                                }
                        } catch (IOException e) {
-                               logger.error(e.getMessage(), e);
+
+                               logger.info(e.getMessage(), e);
+
                        } 
                }
                String err;
@@ -173,11 +161,11 @@ public class AAFRealm extends AuthorizingRealm {
                        err = authn.validate(authUser,authPassword);
                } catch (IOException e) {
                        err = "Credential cannot be validated";
-                       logger.error(err, e);
+                       logger.info(e.getMessage(), e);
                }
                
                if(err != null) {
-                       logger.debug(err);
+                       logger.info(err);
                        throw new AuthenticationException(err);
                }
 
@@ -190,23 +178,29 @@ public class AAFRealm extends AuthorizingRealm {
 
        @Override
        protected void assertCredentialsMatch(AuthenticationToken atoken, AuthenticationInfo ai)throws AuthenticationException {
+               
                if(ai instanceof AAFAuthenticationInfo) {
                        if(!((AAFAuthenticationInfo)ai).matches(atoken)) {
                                throw new AuthenticationException("Credentials do not match");
+
                        }
+                       
                } else {
                        throw new AuthenticationException("AuthenticationInfo is not an AAFAuthenticationInfo");
+               
                }
        }
 
 
+
+
        @Override
        protected AAFAuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
-               logger.debug("AAFRealm.doGetAuthenthorizationInfo");
                Principal bait = (Principal)principals.getPrimaryPrincipal();
                Principal newBait = bait;
                if(idMap!=null) {
                        final String newID = idMap.get(bait.getName());
+                       logger.info("Successful authentication attempt by " +bait.getName()); 
                        if(newID!=null) {
                                newBait = new Principal() {
                                        @Override
@@ -218,7 +212,6 @@ public class AAFRealm extends AuthorizingRealm {
                }
                List<Permission> pond = new ArrayList<>();
                authz.fishAll(newBait,pond);
-               
                return new AAFAuthorizationInfo(access,bait,pond);
        
        }