2

虽然类似,但我在 WebSphere 8.5 上使用 JASPIC auth 模块中没有解决我遇到的具体问题

我收到以下错误消息:

SECJ8027E: 必须使用属性 com.ibm.websphere.jaspi.configuration 指定存储 JASPI 持久注册的文件的路径和名称。

我可以将管理中的自定义属性设置为某个现有文件夹,但我想确保这是正确的方法,或者我是否缺少某些步骤。

注意我专门使用“嵌入应用程序”方法而不是服务器安装的 JASPIC 模块,所以我有这样的东西

@WebListener
public class JaspicInitializer implements
    ServletContextListener {

    @Override
    public void contextInitialized(final ServletContextEvent sce) {

        final Map<String, String> options = new HashMap<>();
        AuthConfigFactory.getFactory()
            .registerConfigProvider(AuthModuleConfigProvider.class.getName(), options, "HttpServlet", null, null);
    }
}

我在 WebSphere 8.5.5.11 和 9.0.0.3 上都有错误

4

1 回答 1

2

从@Uux 评论中,我更改了注册方式,因此不再出现错误。

@WebListener
public class JaspicInitializer implements
    ServletContextListener {

    private String registrationID;

    @Override
    public void contextDestroyed(final ServletContextEvent sce) {

        AuthConfigFactory.getFactory().removeRegistration(registrationID);
    }

    @Override
    public void contextInitialized(final ServletContextEvent sce) {

        final ServletContext context = sce.getServletContext();
        registrationID = AuthConfigFactory.getFactory()
            .registerConfigProvider(new AuthModuleConfigProvider(), "HttpServlet", 
              context.getVirtualServerName() + " " + context.getContextPath(), "JEE Sample");
    }
}

此外,还需要配置WebSphere Global Security

  • 启用应用程序安全性
  • 启用 Java 身份验证 SPI (JASPI)

在此处输入图像描述

于 2017-05-04T17:27:20.170 回答