You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ca...@apache.org on 2006/11/12 19:59:12 UTC

svn commit: r474010 - in /myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security: SecurityContext.java SecurityContextImpl.java

Author: cagatay
Date: Sun Nov 12 10:59:11 2006
New Revision: 474010

URL: http://svn.apache.org/viewvc?view=rev&rev=474010
Log:
Made SecurityContext abstract and provided an implementation
that checks out J2EE container security.

Modified:
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContext.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContextImpl.java

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContext.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContext.java?view=diff&rev=474010&r1=474009&r2=474010
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContext.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContext.java Sun Nov 12 10:59:11 2006
@@ -22,11 +22,82 @@
  * 
  * @author cagatay
  */
-public interface SecurityContext {
+public abstract class SecurityContext {
 
-	public String getAuthType();
+	public final static int AUTH_MODE_NONE = -1;
+	public final static int AUTH_MODE_SINGLE = 0;
+	public final static int AUTH_MODE_ALL = 1;
+	public final static int AUTH_MODE_ANY = 2;
+	public final static int AUTH_MODE_NOT = 3;
 	
-	public String getRemoteUser();
+	private String[] roles;
+	private int authMode = AUTH_MODE_NONE;
 	
-	//TODO add more
+	public abstract String getAuthType();	
+	
+	public abstract String getRemoteUser();
+	
+	public abstract boolean ifGranted(String role);
+	
+	public boolean ifSingleGranted() {
+		return ifGranted(roles[0]);
+	}
+	
+	public boolean ifAllGranted() {
+		boolean isAuthorized = false;
+		for (int i = 0; i < roles.length; i++) {
+			String role = roles[i];
+			if(ifGranted(role)) {
+				isAuthorized = true;
+			} else {
+				isAuthorized = false;
+				break;
+			}
+		}
+		return isAuthorized;
+	}
+	
+	public boolean ifAnyGranted() {
+		boolean isAuthorized = false;
+		for (int i = 0; i < roles.length; i++) {
+			String role = roles[i];
+			if(ifGranted(role)) {
+				isAuthorized = true;
+				break;
+			}
+		}
+		return isAuthorized;
+	}
+	
+	public boolean ifNotGranted() {
+		boolean isAuthorized = false;
+		for (int i = 0; i < roles.length; i++) {
+			String role = roles[i];
+			if(ifGranted(role)) {
+				isAuthorized = false;
+				break;
+			} else {
+				isAuthorized = true;
+			}
+		}
+		return isAuthorized;
+	}
+	
+	public boolean inAuthMode() {
+		return authMode != AUTH_MODE_NONE;
+	}
+	
+	public int getAuthMode() {
+		return authMode;
+	}
+	public void setAuthMode(int authMode) {
+		this.authMode = authMode;
+	}
+
+	public String[] getRoles() {
+		return roles;
+	}
+	public void setRoles(String[] roles) {
+		this.roles = roles;
+	}
 }

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContextImpl.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContextImpl.java?view=diff&rev=474010&r1=474009&r2=474010
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContextImpl.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContextImpl.java Sun Nov 12 10:59:11 2006
@@ -24,14 +24,17 @@
  * 
  * @author cagatay
  */
-public class SecurityContextImpl implements SecurityContext{
+public class SecurityContextImpl extends SecurityContext{
 
 	public String getAuthType() {
 		return FacesContext.getCurrentInstance().getExternalContext().getAuthType();
 	}
-
+	
 	public String getRemoteUser() {
 		return FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
 	}
 
+	public boolean ifGranted(String role) {
+		return FacesContext.getCurrentInstance().getExternalContext().isUserInRole(role);
+	}
 }