/**
* Copyright (C) 2010 Andrew C. Love <drewncrew@gmail.com>
*
* 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 com.dnc.cloak.framework.security;
import java.security.Principal;
import javax.security.auth.Subject;
import javax.security.auth.login.LoginContext;
import com.dnc.cloak.framework.security.authorization.IAuthorizer;
import com.dnc.cloak.framework.security.authorization.IBATISAuthorizer;
public class DefaultSecurityContext implements ISecurityContext {
private Subject subject = null;
private Principal principal = null;
private CloakPrincipal cloakPrincipal = null;
private String securityPolicy = null;
private IAuthorizer authorizer = null;
public DefaultSecurityContext() {
}
public DefaultSecurityContext(Principal principal) {
this(principal,"default",new IBATISAuthorizer());
}
public DefaultSecurityContext(Principal principal, String securityPolicy, IAuthorizer authorizer) {
super();
this.principal = principal;
this.securityPolicy = securityPolicy;
this.authorizer = authorizer;
if (this.principal instanceof CloakPrincipal) {
this.cloakPrincipal = (CloakPrincipal)principal;
}
}
public DefaultSecurityContext(LoginContext lc) {
this(lc,"default",new IBATISAuthorizer());
}
public DefaultSecurityContext(LoginContext lc, String securityPolicy) {
this(lc,securityPolicy,new IBATISAuthorizer());
}
public DefaultSecurityContext(LoginContext lc, String securityPolicy, IAuthorizer authorizer) {
this.subject = lc.getSubject();
if (lc!=null && lc.getSubject().getPrincipals().size() > 0) {
Principal principal = (Principal)lc.getSubject().getPrincipals(Principal.class).toArray()[0];
this.principal = principal;
this.securityPolicy = securityPolicy;
this.authorizer =authorizer;
}
if (this.principal instanceof CloakPrincipal) {
this.cloakPrincipal = (CloakPrincipal)principal;
}
}
@Override
public Principal getPrincipal() {
return this.principal;
}
@Override
public CloakPrincipal getCloakPrincipal() {
return cloakPrincipal;
}
@Override
public String getSecurityPolicy() {
return this.securityPolicy;
}
@Override
public IAuthorizer getAuthorizer() {
return authorizer;
}
@Override
public CloakPrincipal getSubject() {
// TODO Auto-generated method stub
return null;
}
}
|