从5.7迁移的Hybris 6.3上的Oauth请求失败

2020-08-30 08:32发布

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

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


专家们,

我已经完成了从5.7到hybris 6.3的迁移。 我可以从店面运行正常的Web服务以及已解决的CSRF令牌问题登录,但是尝试使rest service为移动api运行。

我按照提到的相同步骤操作 https://help.hybris。 com/6.3.0/hcd/8c189dc48669101496b594a9bb97a11b.html

随后是文档,我没有使用v2网络服务,因此我在通用的security-spring.xml中进行了更改

和禁用的csrf令牌。

  
              
              
              <!-对于PRODUCTION require-channel =" https"->
              
              
              <!-仅在您需要通过请求对客户端进行身份验证时才包括
                  参数->
              
              
          
 
          
              
              
              
              
 
              
              
              <匿名/>
          
  

............................................... ....................................................

此后,我根据文档通过后台创建了oauth客户端: https://help.hybris.com/6.0.0/hcd/627c92db29ce4fce8b01ffbe478a8b3b.html#loio4079b4327ac243b6b3bd507cda6d74ff

现在,当我尝试使用网址访问其余服务时:

https: //localhost:9002/rest/oauth/token?response_type=code&client_id=mobile_android&siteid=lc&client_secret=secret&grant_type=password&password=1234&email=raushan0301483106@gmail.com

然后我收到答复:

{"错误":[{"消息":无法评估表达式'IS_AUTHENTICATED_FULLY',"类型":IllegalArgumentError}]}

具有后端例外:

 在此处输入代码pringframework.security.web.access.ExceptionTranslationFilter@7f56559c,org.springframework.security.web.access.intercept.FilterSecurityInterceptor@695d3126]]]]''!; 嵌套的异常是java.lang.Illega
  lArgumentException:无法以根本原因评估表达式'IS_AUTHENTICATED_FULLY']
  org.springframework.expression.spel.SpelEvaluationException:EL1008E :(位置0):在类型为org.springframework.security.web.access.expr的对象上找不到属性或字段'IS_AUTHENTICATED_FULLY'
  ession.WebSecurityExpressionRoot'-也许不公开?
          在org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:224)处
          在org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:94)
          在org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:81)
          在org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:131)
          在org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:299)
          在org.springframework.security.access.expression.ExpressionUtils.evaluateAsBoolean(ExpressionUtils.java:26)
          在org.springframework.security.web.access.expression.WebExpressionVoter.vote(WebExpressionVoter.java:52)
          在org.springframework.security.web.access.expression.WebExpressionVoter.vote(WebExpressionVoter.java:33)
          在org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:63)


  

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

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


专家们,

我已经完成了从5.7到hybris 6.3的迁移。 我可以从店面运行正常的Web服务以及已解决的CSRF令牌问题登录,但是尝试使rest service为移动api运行。

我按照提到的相同步骤操作 https://help.hybris。 com/6.3.0/hcd/8c189dc48669101496b594a9bb97a11b.html

随后是文档,我没有使用v2网络服务,因此我在通用的security-spring.xml中进行了更改

和禁用的csrf令牌。

  
              
              
              <!-对于PRODUCTION require-channel =" https"->
              
              
              <!-仅在您需要通过请求对客户端进行身份验证时才包括
                  参数->
              
              
          
 
          
              
              
              
              
 
              
              
              <匿名/>
          
  

............................................... ....................................................

此后,我根据文档通过后台创建了oauth客户端: https://help.hybris.com/6.0.0/hcd/627c92db29ce4fce8b01ffbe478a8b3b.html#loio4079b4327ac243b6b3bd507cda6d74ff

现在,当我尝试使用网址访问其余服务时:

https: //localhost:9002/rest/oauth/token?response_type=code&client_id=mobile_android&siteid=lc&client_secret=secret&grant_type=password&password=1234&email=raushan0301483106@gmail.com

然后我收到答复:

{"错误":[{"消息":无法评估表达式'IS_AUTHENTICATED_FULLY',"类型":IllegalArgumentError}]}

具有后端例外:

 在此处输入代码pringframework.security.web.access.ExceptionTranslationFilter@7f56559c,org.springframework.security.web.access.intercept.FilterSecurityInterceptor@695d3126]]]]''!; 嵌套的异常是java.lang.Illega
  lArgumentException:无法以根本原因评估表达式'IS_AUTHENTICATED_FULLY']
  org.springframework.expression.spel.SpelEvaluationException:EL1008E :(位置0):在类型为org.springframework.security.web.access.expr的对象上找不到属性或字段'IS_AUTHENTICATED_FULLY'
  ession.WebSecurityExpressionRoot'-也许不公开?
          在org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:224)处
          在org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:94)
          在org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:81)
          在org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:131)
          在org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:299)
          在org.springframework.security.access.expression.ExpressionUtils.evaluateAsBoolean(ExpressionUtils.java:26)
          在org.springframework.security.web.access.expression.WebExpressionVoter.vote(WebExpressionVoter.java:52)
          在org.springframework.security.web.access.expression.WebExpressionVoter.vote(WebExpressionVoter.java:33)
          在org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:63)


  
付费偷看设置
发送
3条回答
zhangjiyang1323
1楼-- · 2020-08-30 09:00

专家们,

面对同样的问题。 有没有人对此有任何解决方案?

悻福寶寶
2楼-- · 2020-08-30 08:58
浮生未央
3楼-- · 2020-08-30 09:14

问题是,在Spring Security 4.x中,XML配置默认使用表达式,而 IS_AUTHENTICATED_FULLY 不是表达式语法。 可以使用 禁用表达式,也可以将" IS_AUTHENTICATED_FULLY"替换为" fullyAuthenticated"。

一周热门 更多>