首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WSS4j 1.5:如何跳过密码验证?

WSS4j 1.5:如何跳过密码验证?
EN

Stack Overflow用户
提问于 2016-03-21 20:22:01
回答 2查看 416关注 0票数 1

我需要使用ApacheSOAP1.5进行一些SOAP签名/验证,但是我在跳过/禁用WSS4J密码验证时遇到了困难。

在WSS4J 1.6+中,我可以将安全引擎配置为使用NoOpValidator()类来跳过用户名令牌身份验证,但是1.5没有这种支持。

有没有办法告诉WSS4J 1.5跳过用户名/密码验证路由?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-22 03:43:01

在深入研究了WSSecEngine类之后,我发现我不需要CallBackHandler,而是跳过UsernameToken对象处理的自定义处理器:

代码语言:javascript
复制
        WSSecurityEngine secEngine = new WSSecurityEngine();
        WSSConfig wsConfig = WSSConfig.newInstance();
        wsConfig.setProcessor(UsernameToken.TOKEN, new Processor() {

            @Override
            public void handleToken(Element arg0, Crypto arg1, Crypto arg2, CallbackHandler arg3, WSDocInfo arg4, Vector arg5, WSSConfig arg6)
                    throws WSSecurityException {
                // skip the token processing
                logger.debug("Skipping processing of the username token");
            }

            @Override
            public String getId() {
                return null;
            }
        });
        secEngine.setWssConfig(wsConfig);

虽然WSS4J 1.5已经非常老了,但希望这能在未来成为其他人的希望。

WSS4J 1.6+改变了这些处理器与验证器的工作方式。

票数 0
EN

Stack Overflow用户

发布于 2016-03-21 22:08:59

您需要编写自己的回调处理程序实现,以跳过可以从系统属性加载处理程序类的加载LoginContext.Then。

参考javax.security.auth.callback.CallbackHandler,的源代码

可以在auth.login.defaultCallbackHandler安全属性中指定默认的CallbackHandler类实现。 安全属性可以在名为/lib/ security /java.security文件中的Java安全属性文件中设置。引用java.home系统属性的值,并指定安装JRE的目录。 如果安全属性设置为CallbackHandler实现类的完全限定名,则LoginContext将加载指定的CallbackHandler并将其传递给基础LoginModules。 只有在未提供默认处理程序的情况下,LoginContext才会加载它。所有默认的处理程序实现都必须提供公共的零参数构造函数。

还要注意WSS4J 1.5.XX带来的一些风险

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36140824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档