相关疑难解决方法(0)

如何在JASPIC中保存经过身份验证的用户?

我开发了一个安全认证模块(SAM)并实现了该validateRequest方法.我还有一个简单的webapp配置为使用此SAM.

在我的validateRequest方法中,我检查clientSubject并CallerPrincipalCallback使用硬编码的用户名和GroupPrincipalCallback带有硬编码组名的设置:

final CallerPrincipalCallback callerPrincipalCallback = new CallerPrincipalCallback(clientSubject, "anonymous");
final GroupPrincipalCallback groupPrincipalCallback = new GroupPrincipalCallback(clientSubject, new String[] {"user"});

try {
  this.handler.handle(new Callback[] {callerPrincipalCallback, groupPrincipalCallback});
} catch (IOException | UnsupportedCallbackException e) {
  logger.error(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

我注意到每次我在webapp中刷新servlet时,客户端主题都是空白的,logger.debug("Client: {}", clientSubject);:

2015-05-05 11:21:02,200 DEBUG n.m.j.s.Saml2AuthModule [http-listener-1(2)] Client: Subject:
Run Code Online (Sandbox Code Playgroud)

是否有可能以某种方式"保存"主题,以便主题附加到会话,我可以简单地每次都跳过登录同一个用户?

编辑我想我找到了一种方法,通过手动存储它HttpSession:req.getSession().setAttribute("subject", user);不漂亮,但它的工作原理.

java security authentication jsr196 jaspic

3
推荐指数
1
解决办法
780
查看次数

标签 统计

authentication ×1

jaspic ×1

java ×1

jsr196 ×1

security ×1