Skip to content
This repository was archived by the owner on Sep 23, 2025. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import org.switchyard.ServiceSecurity;
import org.switchyard.security.context.SecurityContext;
import org.switchyard.security.credential.AssertionCredential;
import org.switchyard.security.credential.PrincipalCredential;
import org.switchyard.security.jboss.JBossSecurityLogger;
import org.switchyard.security.principal.GroupPrincipal;
import org.switchyard.security.principal.RolePrincipal;
Expand Down Expand Up @@ -74,18 +75,48 @@ public JBossSecurityProvider() {
* {@inheritDoc}
*/
@Override
public void populate(ServiceSecurity serviceSecurity, SecurityContext securityContext) {
public boolean authenticate(ServiceSecurity serviceSecurity, SecurityContext securityContext) {
org.jboss.security.SecurityContext jb_securityContext = SecurityContextAssociation.getSecurityContext();
if (jb_securityContext != null) {
String sy_securityDomain = serviceSecurity.getSecurityDomain();
Subject sy_subject = securityContext.getSubject(sy_securityDomain);

// populate from pre-authenticated container context
String jb_securityDomain = jb_securityContext.getSecurityDomain();
if (!sy_securityDomain.equals(jb_securityDomain)) {
pushSubjectContext(sy_securityDomain);
}
Subject jb_subject = jb_securityContext.getUtil().getSubject();
transfer(jb_subject, sy_subject);

Principal jb_principal = jb_securityContext.getUtil().getUserPrincipal();
securityContext.getCredentials().add(new PrincipalCredential(jb_principal, true));

return true;
}

return super.authenticate(serviceSecurity, securityContext);
}

/**
* {@inheritDoc}
*/
@Override
public void populate(ServiceSecurity serviceSecurity, SecurityContext securityContext) {
String sy_securityDomain = serviceSecurity.getSecurityDomain();
Subject sy_subject = securityContext.getSubject(sy_securityDomain);
org.jboss.security.SecurityContext jb_securityContext = SecurityContextAssociation.getSecurityContext();
if (jb_securityContext != null) {
if (jb_securityContext != null) {
// populate from pre-authenticated container context
String jb_securityDomain = jb_securityContext.getSecurityDomain();
if (!sy_securityDomain.equals(jb_securityDomain)) {
pushSubjectContext(sy_securityDomain);
}
Subject jb_subject = jb_securityContext.getUtil().getSubject();
transfer(jb_subject, sy_subject);
}
Subject jb_subject = jb_securityContext.getUtil().getSubject();
transfer(jb_subject, sy_subject);

Principal jb_principal = jb_securityContext.getUtil().getUserPrincipal();
securityContext.getCredentials().add(new PrincipalCredential(jb_principal, true));
} else {
// populate from pre-verified federated assertion
Set<AssertionCredential> assertionCredentials = securityContext.getCredentials(AssertionCredential.class);
Expand Down