Я намерен защитить предоставленные веб-службы SOAP с помощью применения определенных политик WS-Security, в частности «SAML 2.0 Bearer» и «SAML 2.0 Sender Vouches».Учетные данные, предоставленные в токенах SAML, должны использоваться для инициализации контекста безопасности EJB для применения правильной авторизации пользователя в EJB-части приложения.
Я успешно использовал встроенный Apache CXF для защиты сетисервисы как таковые, а также для инициализации контекста безопасности веб-сервиса (WebServiceContext.getUserPrincipal()
).Однако мне не удается распространить пользовательский контекст из контекста веб-службы в контекст сеанса EJB (SessionContext.getCallerPrincipal()
).Любые советы о том, как этого добиться, высоко ценятся.
Пока что я ожидаю, что мне потребуется реализовать функциональность, аналогичную приведенной здесь документации: https://docs.jboss.org/author/display/JBWS/WS-Security#WS-Security-Authenticationandauthorization,, то есть создать перехватчик CXF, аналогичныйhttps://github.com/jbossws/jbossws-cxf/blob/master/modules/server/src/main/java/org/jboss/wsf/stack/cxf/security/authentication/SubjectCreatingPolicyInterceptor.java, который использует учетные данные, указанные в токенах SAML, для создания контекста безопасности EJB.