1 28 package net.sf.jguard.core.authorization.domaincombiners; 29 30 import java.net.URL ; 31 import java.security.CodeSource ; 32 import java.security.DomainCombiner ; 33 import java.security.Principal ; 34 import java.security.ProtectionDomain ; 35 import java.security.cert.Certificate ; 36 37 import javax.security.auth.Subject ; 38 39 43 public class StackSubjectDomainCombiner implements DomainCombiner { 44 private Subject subject; 45 46 public StackSubjectDomainCombiner(Subject subj) { 47 this.subject = subj; 48 } 49 50 58 public ProtectionDomain [] combine(ProtectionDomain [] currentDomains, 59 ProtectionDomain [] assignedDomains) { 60 ProtectionDomain [] combinedPd = new ProtectionDomain [currentDomains.length+1]; 61 System.arraycopy(currentDomains,0,combinedPd,0,currentDomains.length); 62 CodeSource cs = new CodeSource ((URL )null,(Certificate [])null); 63 combinedPd[currentDomains.length] = new ProtectionDomain (cs,null,null, 64 (Principal [])subject.getPrincipals().toArray(new Principal [subject.getPrincipals().size()])); 65 return combinedPd; 66 } 67 68 } 69 | Popular Tags |