You
can obtain various security attributes of the request from
the WSCredential object in the subject as shown in the following example:
if (subject != null) {
java.util.Set credSet = subject.getPublicCredentials();
if (credSet != null && credSet.size() > 0)
{
Iterator credIterator = credSet.iterator();
while (credIterator.hasNext()) {
Object o = credIterator.next();
WSCredential cred = null;
if (o instanceof WSCredential) {
cred = (WSCredential) o;
} else {
if (securityName == null) {
securityName = new StringBuffer();
}
securityName.append("\n>> Found a public credential: " + o.getClass().getName());
}
if (cred != null) {
if (securityName == null) {
securityName = new StringBuffer();
}
securityName.append("\n>> WSCredential security attributes . . .");
securityName.append("\n>> getAccessId = \t\t" + cred.getAccessId());
securityName.append("\n>> getGroupIds = \t\t" + cred.getGroupIds());
securityName.append("\n>> getPrimaryGroupId = \t\t" + cred.getPrimaryGroupId());
securityName.append("\n>> getRealmName = \t\t" + cred.getRealmName());
securityName.append("\n>> getRealmSecurityName = \t\t" + cred.getRealmSecurityName());
securityName.append("\n>> getRealmUniqueSecurityName = \t\t" + cred.getRealmUniqueSecurityName());
securityName.append("\n>> getSecurityName = \t\t" + cred.getSecurityName());
securityName.append("\n>> getUniqueSecurityName = \t\t" + cred.getUniqueSecurityName());
}
}
}
}
Sample output is shown below:
>> WSCredential security attributes . . .
>> getAccessId = user:ldap1.austin.ibm.com:389/cn=user2,o=ibm,c=us
>> getGroupIds = [group:ldap1.austin.ibm.com:389/CN=GROUP2,O=IBM,C=US]
>> getPrimaryGroupId = group:ldap1.austin.ibm.com:389/CN=GROUP2,O=IBM,C=US
>> getRealmName = ldap1.austin.ibm.com:389
>> getRealmSecurityName = ldap1.austin.ibm.com:389/user2
>> getRealmUniqueSecurityName = ldap1.austin.ibm.com:389/cn=user2,o=ibm,c=us
>> getSecurityName = user2
>> getUniqueSecurityName = cn=user2,o=ibm,c=us