在Backoffice登录上设置Employee lastLogin字段

2020-08-31 07:15发布

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

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


嗨,

我有一个要求,我需要在成功登录后台用户时在后台中设置员工的lastLogin字段。

做了一些深入的研究,我试图覆盖自定义扩展中的 ResetConfigurationAuthenticationSuccessHandler/BackofficeAuthenticationSuccessHandler 类及其bean backofficeAuthenticationSuccessHandler ,并在覆盖成功中设置lastLogin字段 处理程序。

但是服务器启动时出现以下错误:

[Hybris版本:1811]

 [BackofficeApplicationContext]在上下文初始化期间遇到异常-取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建名称为'org.springframework.security.filterChains'的bean时出错:无法解析对bean'org.springframework的引用 .security.web.DefaultSecurityFilterChain#4',同时使用键[4]设置bean属性" sourceList"; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'org.springframework.security.web.DefaultSecurityFilterChain#4'的bean时出错:无法解析对bean'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#的引用 0',同时使用键[4]设置构造函数参数; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为" org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0"的bean时出错:在设置bean属性" authenticationSuccessHandler"时无法解析对bean" backofficeAuthenticationSuccessHandler"的引用; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[custombackoffice-spring-security-config.xml]中创建名称为'configurationAuthenticationSuccessHandler'的bean时出错。 嵌套异常是org.springframework.beans.ConversionNotSupportedException:无法将类型" com.hybris.backoffice.cockpitng.user.BackofficeCockpitUserService"的属性值转换为属性""的必需类型" com.hybris.cockpitng.core.user.CockpitUserService"  cockpitUserService'; 嵌套异常为java.lang.IllegalStateException:无法将类型" com.hybris.backoffice.cockpitng.user.BackofficeCockpitUserService"的值转换为属性" cockpitUserService"所需的类型" com.hybris.cockpitng.core.user.CockpitUserService":否 找到匹配的编辑器或转换策略

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

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


嗨,

我有一个要求,我需要在成功登录后台用户时在后台中设置员工的lastLogin字段。

做了一些深入的研究,我试图覆盖自定义扩展中的 ResetConfigurationAuthenticationSuccessHandler/BackofficeAuthenticationSuccessHandler 类及其bean backofficeAuthenticationSuccessHandler ,并在覆盖成功中设置lastLogin字段 处理程序。

但是服务器启动时出现以下错误:

[Hybris版本:1811]

 [BackofficeApplicationContext]在上下文初始化期间遇到异常-取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建名称为'org.springframework.security.filterChains'的bean时出错:无法解析对bean'org.springframework的引用 .security.web.DefaultSecurityFilterChain#4',同时使用键[4]设置bean属性" sourceList"; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'org.springframework.security.web.DefaultSecurityFilterChain#4'的bean时出错:无法解析对bean'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#的引用 0',同时使用键[4]设置构造函数参数; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为" org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0"的bean时出错:在设置bean属性" authenticationSuccessHandler"时无法解析对bean" backofficeAuthenticationSuccessHandler"的引用; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[custombackoffice-spring-security-config.xml]中创建名称为'configurationAuthenticationSuccessHandler'的bean时出错。 嵌套异常是org.springframework.beans.ConversionNotSupportedException:无法将类型" com.hybris.backoffice.cockpitng.user.BackofficeCockpitUserService"的属性值转换为属性""的必需类型" com.hybris.cockpitng.core.user.CockpitUserService"  cockpitUserService'; 嵌套异常为java.lang.IllegalStateException:无法将类型" com.hybris.backoffice.cockpitng.user.BackofficeCockpitUserService"的值转换为属性" cockpitUserService"所需的类型" com.hybris.cockpitng.core.user.CockpitUserService":否 找到匹配的编辑器或转换策略
付费偷看设置
发送
1条回答
渐行渐远_HoldOn
1楼-- · 2020-08-31 07:41

我能够通过自定义backoffice-spring-security.xml来更改successauthenticationhandler来找到解决方案:

 authentication-success-handler-ref =" testSuccessHandler" 

,并在backoffice/src文件夹中将自定义SuccessHandler定义为:

公共类TestAuthSuccessHandler扩展了BackofficeAuthenticationSuccessHandler {

 .....

 onAuthenticationSuccess(){
 EmployeeModel employee =(EmployeeModel)this.userService.getUserForUID(authentication.getName(),EmployeeModel.class);
         employee.setLastLogin(new Date());
         modelService.save(employee);
         super.onAuthenticationSuccess(请求,响应,认证);

 }
 .....
 } 

上述类的bean声明[在backoffice-spring-security.xml中:]

 
     
     
  

一周热门 更多>