...
Code Block | ||
---|---|---|
| ||
public Class SSOTicket implements TicketGrantingTicket { private final Date whenCreated = new Date(); private final Principal authenticatedUser; private final ExpirationPolicy expPolicy; private final ExpirationPolicyFactory expPolicyFactory; public SSOTicket(Principal authenticatedUser, ExpirationPolicy expPolicy, ExpirationPolicyFactory expPolicyFactory) { this.authenticatedUser = authenticatedUser; this.expPolicy = expPolicy; this.expPolicyFactory = expPolicyFactory; } public Principal getUser() { return this.authenticatedUser; } public boolean isValid() { return this.expPolicy.isValid(); } public void expire() { this.expPolicy.expire(); } public TargettedTicket deriveTicket(URL target) { return new TargettedTicketImpl(target, this, this.expPolicyFactory.buildPolicyInstance()); } } |
Code Block | ||
---|---|---|
| ||
public Class ProxyGrantingTicket implements TicketGrantingTicket, DerivedTicket { private final Date whenCreated = new Date(); private final Principal authenticatedUser; private final ExpirationPolicy expPolicy; private final ExpirationPolicyFactory expPolicyFactory; private final TicketGrantingTicket parent; public ProxyGrantingTicket(Principal proxyingService, ExpirationPolicy expPolicy, ExpirationPolicyFactory expPolicyFactory, TicketGrantingTicket parent) { this.authenticatedUser = authenticatedUser; this.expPolicy = expPolicy; this.expPolicyFactory = expPolicyFactory; this.parent = parent; } public Principal getUser() { return this.authenticatedUser; } public boolean isValid() { return this.expPolicy.isValid(); } public void expire() { this.expPolicy.expire(); } public TargettedTicket deriveTicket(URL target) { return new TargettedTicketImpl(target, this, this.expPolicyFactory.buildPolicyInstance()); } public TicketGrantingTicket getParant() { return this.parent; } } |
...
Code Block | ||
---|---|---|
| ||
public Class TargettedTicketImpl implements TargettedTicket {
private final Date whenCreated = new Date();
private final ExpirationPolicy expPolicy;
private final TicketGrantingTicket parent;
private final URL target;
public SSOTicket(URL target, TicketGrantingTicket parent, ExpirationPolicy expPolicy) {
this.target = target;
this.parent = parent;
this.expPolicy = expPolicy;
}
public boolean isValid() {
return this.expPolicy.isValid()
&& this.parent.isValid();
}
public URL getTarget() {
return this.target;
}
public List getPrincipalChain() {
List principalChain = new ArrayList();
for (TicketGrantingTicket ancestor =
this.parent; ancestor != null; ancestor = ancestor.getParent()) {
principalChain.add(ancestor.getPrincipal());
}
return principalChain;
}
}
|