final Object proxy = testCreateProxy(bc, new Class [] {TestServiceAPI.class, TestServiceAPI2.class}, new MyService());
// Run with the right credentials so we can test the expected roles
Subject subject = new Subject();
subject.getPrincipals().add(new RolePrincipal("c"));
Subject.doAs(subject, new PrivilegedAction<Object>() {
@Override
public Object run() {
assertEquals("Doing it", ((TestServiceAPI) proxy).doit());
return null;
}
});
Subject subject2 = new Subject();
subject2.getPrincipals().add(new RolePrincipal("b"));
subject2.getPrincipals().add(new RolePrincipal("f"));
Subject.doAs(subject2, new PrivilegedAction<Object>() {
@Override
public Object run() {
try {
assertEquals("Doing it", ((TestServiceAPI) proxy).doit());