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);
+ }
}