2009-07-23 77 views
2

我已经为JBoss编写了一个自定义登录模块,用于验证/授权对Web服务的请求。对服务的第一个调用认证正常。我可以将调试器连接到登录模块并跟踪代码执行。但是,所有后续对Web服务的调用都会完全跳过登录模块。看起来JBoss/jaas正在重用第一个连接的结果。JBoss自定义登录模块仅适用于一次

我被卡住了。任何建议让我过驼峰?

回答

0

身份验证/授权是否与会话对象关联?你如何设置会话的超时/失效?

JBOSS可能以某种方式缓存证书。你想要它在这种情况下跳过登录模块。如果您注销或超时会话,您只应使其无效。

你用两个单独的用户/浏览器测试了它们,每个用户都有自己的会话吗?

+0

我有同样的想法,JBoss正在缓存一些东西。由于这是无状态Web服务的自定义安全模块,因此我宁愿自己缓存凭据。我想禁用JBoss缓存,并且每次都执行登录模块。 – IdahoX 2009-07-24 01:08:50

1

我想通了。我试图设置基于cookie的身份验证。显然,JBoss/Jaas基于用户名和密码缓存了成功的身份验证,Cookie被忽略。为了让事情顺利进行,我从Web服务请求中删除了Cookie,并在验证标头中将其替换为用户名和密码。