User: starksm
Date: 02/04/11 18:10:34
Modified: catalina/src/main/org/jboss/web/catalina/security
JBossSecurityMgrRealm.java
Log:
Update the support for extended catalina server.xml style configuration
using a child element of the Config attribute.
Revision Changes Path
1.4 +46 -17
contrib/catalina/src/main/org/jboss/web/catalina/security/JBossSecurityMgrRealm.java
Index: JBossSecurityMgrRealm.java
===================================================================
RCS file:
/cvsroot/jboss/contrib/catalina/src/main/org/jboss/web/catalina/security/JBossSecurityMgrRealm.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JBossSecurityMgrRealm.java 11 Feb 2002 23:03:37 -0000 1.3
+++ JBossSecurityMgrRealm.java 12 Apr 2002 01:10:34 -0000 1.4
@@ -7,6 +7,8 @@
package org.jboss.web.catalina.security;
import java.io.IOException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
import java.security.Principal;
import java.security.cert.X509Certificate;
import java.util.Arrays;
@@ -19,6 +21,8 @@
import javax.security.auth.Subject;
import javax.servlet.ServletException;
+import org.apache.log4j.Category;
+import org.apache.catalina.LifecycleException;
import org.apache.catalina.Realm;
import org.apache.catalina.Request;
import org.apache.catalina.Response;
@@ -26,7 +30,7 @@
import org.apache.catalina.ValveContext;
import org.apache.catalina.realm.RealmBase;
-import org.jboss.logging.Logger;
+import org.jboss.logging.XPriority;
import org.jboss.security.AuthenticationManager;
import org.jboss.security.RealmMapping;
import org.jboss.security.SimplePrincipal;
@@ -53,11 +57,11 @@
@see org.jboss.security.SubjectSecurityManager
@author [EMAIL PROTECTED]
-@version $Revision: 1.3 $
+@version $Revision: 1.4 $
*/
public class JBossSecurityMgrRealm extends RealmBase implements Realm, Valve
{
- static Logger log = Logger.getLogger(JBossSecurityMgrRealm.class.getName());
+ static Category category =
Category.getInstance(JBossSecurityMgrRealm.class.getName());
private String subjectAttributeName = "j_subject";
private boolean useJAAS = false;
@@ -94,6 +98,31 @@
return securityCtx;
}
+ /** Override to allow a single realm to be shared
+ */
+ public void start() throws LifecycleException
+ {
+ if( super.started )
+ return;
+
+ super.lifecycle.fireLifecycleEvent(START_EVENT, null);
+ super.started = true;
+
+ // Create a MessageDigest instance for credentials, if desired
+ if( super.digest != null )
+ {
+ try
+ {
+ super.md = MessageDigest.getInstance(super.digest);
+ }
+ catch (NoSuchAlgorithmException e)
+ {
+ throw new LifecycleException
+ (super.sm.getString("realmBase.algorithm", digest), e);
+ }
+ }
+ }
+
/**
* Return the Principal associated with the specified chain of X509
* client certificates. If there is none, return <code>null</code>.
@@ -117,7 +146,7 @@
}
catch(NamingException e)
{
- log.error("Error during authenticate", e);
+ category.error("Error during authenticate", e);
}
return principal;
}
@@ -231,9 +260,9 @@
*/
public Principal authenticate(String username, String credentials)
{
- boolean trace = log.isTraceEnabled();
+ boolean trace = category.isEnabledFor(XPriority.TRACE);
if( trace )
- log.trace("Begin authenticate, username="+username);
+ category.log(XPriority.TRACE, "Begin authenticate, username="+username);
SimplePrincipal principal = null;
Context securityCtx = getSecurityContext();
if( securityCtx == null )
@@ -251,23 +280,23 @@
passwordChars = credentials.toCharArray();
if( securityMgr.isValid(principal, passwordChars) )
{
- log.trace("User: "+username+" is authenticated");
+ category.log(XPriority.TRACE, "User: "+username+" is
authenticated");
SecurityAssociation.setPrincipal(principal);
SecurityAssociation.setCredential(passwordChars);
}
else
{
principal = null;
- log.trace("User: "+username+" is NOT authenticated");
+ category.log(XPriority.TRACE, "User: "+username+" is NOT
authenticated");
}
}
catch(NamingException e)
{
principal = null;
- log.error("Error during authenticate", e);
+ category.error("Error during authenticate", e);
}
if( trace )
- log.trace("End authenticate, principal="+principal);
+ category.log(XPriority.TRACE, "End authenticate, principal="+principal);
return principal;
}
@@ -294,9 +323,9 @@
*/
public boolean hasRole(Principal principal, String role)
{
- boolean trace = log.isTraceEnabled();
+ boolean trace = category.isEnabledFor(XPriority.TRACE);
if( trace )
- log.trace("Begin hasRole, principal="+principal+", role="+role);
+ category.log(XPriority.TRACE, "Begin hasRole, principal="+principal+",
role="+role);
boolean hasRole = false;
try
{
@@ -311,26 +340,26 @@
}
else
{
- log.warn("Warning: no security context available");
+ category.warn("Warning: no security context available");
}
if( hasRole )
{
- log.trace("User: "+principal+" is authorized");
+ category.log(XPriority.TRACE, "User: "+principal+" is authorized");
}
else
{
RealmMapping securityMgr = (RealmMapping)
securityCtx.lookup("realmMapping");
Set userRoles = securityMgr.getUserRoles(principal);
- log.trace("User: "+principal+" is NOT authorized,
requiredRoles="+requiredRoles+", userRoles="+userRoles);
+ category.log(XPriority.TRACE, "User: "+principal+" is NOT
authorized, requiredRoles="+requiredRoles+", userRoles="+userRoles);
}
}
catch(NamingException e)
{
- log.error("Error during authorize", e);
+ category.error("Error during authorize", e);
}
if( trace )
- log.trace("End hasRole, principal="+principal+", role="+role+",
hasRole="+hasRole);
+ category.log(XPriority.TRACE, "End hasRole, principal="+principal+",
role="+role+", hasRole="+hasRole);
return hasRole;
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development