SecurityUserCheckBeforeControllerHandler的问题

2020-09-12 13:28发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,一旦用户登录hybris系统,我将处于ERROR以下。 用户将通过第三方系统进行身份验证,并且一旦第三方系统给出了用户身份验证成功消息,我们就会在hybris中创建该用户个人资料。 一旦用户通过第三方系统认证,我们将从第三方系统接收用户资料数据。 即使我们使用自定义代码设置了当前用户,也无法找到匿名用户出现的位置。

一旦控件退出我的自定义代码,我将在SecurityUserCheckBeforeControllerHandler中获得匿名用户角色。

日志文件错误:[SecurityUserCheckBeforeControllerHandler]用户未匹配springSecurityUserId [匿名] hybris会话用户[ 1014selectvac@spamhereplease.com ]。 会话无效。

代码:

  UsernamePasswordAuthenticationToken令牌=新的UsernamePasswordAuthenticationToken(" uId","",Collections.unmodifiableCollection(authorirites));
         
  最终的CustomerModel用户= modelService.create(CustomerModel.class);
  user.setUid(uId);
  user.setName(" lori test");
  user.setMarketType(UserStoreType.LOYALTY);
 
  modelService.save(user);
 
  userService.setCurrentUser(user);
 
  token.setDetails(new WebAuthenticationDetails(request));
  SecurityContextHolder.getContext()。setAuthentication(token);
  getGuidCookieStrategy()。setCookie(request,response);
  

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,一旦用户登录hybris系统,我将处于ERROR以下。 用户将通过第三方系统进行身份验证,并且一旦第三方系统给出了用户身份验证成功消息,我们就会在hybris中创建该用户个人资料。 一旦用户通过第三方系统认证,我们将从第三方系统接收用户资料数据。 即使我们使用自定义代码设置了当前用户,也无法找到匿名用户出现的位置。

一旦控件退出我的自定义代码,我将在SecurityUserCheckBeforeControllerHandler中获得匿名用户角色。

日志文件错误:[SecurityUserCheckBeforeControllerHandler]用户未匹配springSecurityUserId [匿名] hybris会话用户[ 1014selectvac@spamhereplease.com ]。 会话无效。

代码:

  UsernamePasswordAuthenticationToken令牌=新的UsernamePasswordAuthenticationToken(" uId","",Collections.unmodifiableCollection(authorirites));
         
  最终的CustomerModel用户= modelService.create(CustomerModel.class);
  user.setUid(uId);
  user.setName(" lori test");
  user.setMarketType(UserStoreType.LOYALTY);
 
  modelService.save(user);
 
  userService.setCurrentUser(user);
 
  token.setDetails(new WebAuthenticationDetails(request));
  SecurityContextHolder.getContext()。setAuthentication(token);
  getGuidCookieStrategy()。setCookie(request,response);
  
付费偷看设置
发送
6条回答
My梦
1楼 · 2020-09-12 14:11.采纳回答

AuthProvider是从过滤器中调用的,因此您应该从过滤器中调用authprovider,对CustomerModel的更新应该在提供者中进行。 所有这些配置都进入sprin-security-config.xml,在这里您可以控制与URL相关的所有内容。 该链接提供了有关spring-security的更多信息 http://docs.spring.io/autorepo/docs/spring-security/4.0.0.CI-SNAPSHOT/reference/htmlsingle/#ns-auth-providers

对于您的问题,作为快速修复,在SecurityUserCheckBeforeControllerHandler中,使用用户更新currentUser,就像您在过滤器中所做的那样,我的意思是这段代码 userService.setCurrentUser(user); 使用会话服务获取此数据。 我不太清楚会产生什么影响,因为不存在身份验证提供程序。

huskylover
2楼-- · 2020-09-12 14:18

您好,穆拉利

我们有相同的要求。当前,一旦用户在IDP页面中输入凭证并单击符号,我们就可以从IDP到达店面,重定向到hybris店面,但登录用户仍然匿名

您能告诉我们我们需要编写自定义过滤器或逻辑以使用户作为店面登录用户的哪一层吗?

lukcy2020
3楼-- · 2020-09-12 14:08

当spring-session/hybris-session为 未使用用户详细信息更新。 您是否在使用spring-security并将其正确配置为在第三方对用户进行身份验证? 您是否还创建了除使用客户或员工类型以外的自定义用户类型?

N-Moskvin
4楼-- · 2020-09-12 14:06

嗨Ak

我们也有类似的要求,并且存在问题

您能否让我知道您的联系方式,如果可以的话,直接联系以获得更多详细信息

SKY徐
5楼-- · 2020-09-12 14:04

我们遇到了同样的问题-请让我们知道如何解决。 从上述响应中可以了解到,当需要注入Auth提供程序时

大简至美
6楼-- · 2020-09-12 14:23

嗨,我也遇到了同样的问题。 在我的情况下,当我在选择购物车的客户时出现以下错误SecurityUserCheckBeforeControllerHandler]用户错配springSecurityUserId [匿名] hybris会话用户[ sachin@gmail.com ]。 无效的会话。 当我查看SecurityUserCheckBeforeControllerHandler时,springSecurityId和hybrisId不相同。 在SpringSecurityId中,我具有匿名用户,在hybrisId中,我具有 sachin@gmail.com 。 由于这个原因,当我们在我们的店面中使用secureportaladdon时,将我重定向到登录页面。 谁能帮我吗。 谢谢

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答