spring - broadleaf commerce 演示站点登录链接被重定向

标签 spring tomcat spring-mvc spring-security broadleaf-commerce

我已将 Broadleaf 演示站点配置为直接从 eclipse 与 tomcat 服务器一起运行(而不是使用 ant 任务)。我试图访问登录、注册和购物车页面,但链接被重定向了。由于在 tomcat 演示站点中,登录页面必须位于/mycompany/login,当我单击登录链接时,我被重定向到/mycompany/mycompany/login。

我试图直接点击 url http://localhost:8181/mycompany/login 但它也被重定向/更改为 http://localhost:8181/mycompany/mycompany/登录。同样的问题也会在点击注册和购物车链接时重复出现。

在 LoginController 中,我可以看到请求映射为“@RequestMapping("/mycompany/login")”。

在日志中,我可以看到“在名称为‘mycompany’的 DispatcherServlet 中未找到具有 URI [/mycompany/mycompany/login] 的 HTTP 请求的映射”,这是真的,因为我们没有此 url 的映射。

指向我可以查找错误的位置的任何指针。

最佳答案

我假设您确实看到它重定向到 https://localhost:8081 (相对于 8181http)。

这些 URL 在 applicationContext-security.xml 中特别标记为需要 SSL :

<sec:intercept-url pattern="/register*" requires-channel="https" />
<sec:intercept-url pattern="/login*/**" requires-channel="https" />
<sec:intercept-url pattern="/account/**" access="ROLE_USER" requires-channel="https" />
<sec:intercept-url pattern="/checkout/**" requires-channel="https" />
<sec:intercept-url pattern="/null-checkout/**" requires-channel="https" />
<sec:intercept-url pattern="/null-giftcard/**" requires-channel="https" />
<sec:intercept-url pattern="/confirmation/**" requires-channel="https" />

如果您将它们注释掉(或删除),那么您将不会再看到重定向。另一种方法是仅在您的 Tomcat 实例上配置 SSL。

此外,@RequestMapping你在 LoginController 上提到的应该只是 @RequestMapping("/login") .无需包括 /mycompany其中的一部分(我假设是 Tomcat 上下文)因为 Spring URL 会忽略它。

关于spring - broadleaf commerce 演示站点登录链接被重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23191590/

相关文章:

如果 spring.mail.host 不在 application.properties 中,则 JavaMailSenderImpl Autowiring 错误

java - 保护 apache CXF REST 和 SOAP 服务并在代码中检索权限

spring - 为什么 basePackageClasses (@ComponentScan) "Type-Safe"?

java - 我正在使用 Eclipse IDE。 jsp 代码执行但 servlet 返回空白页

java - urlrewrite.xml 似乎不起作用

java - SpringMVC REST Web 服务

tomcat - RDF4J 工作台无法查询新存储库

tomcat - 在 Tomcat 集群环境中覆盖 Liferay 的 "autodeploy.enabled"属性

java - 如何使用Java从IE中的服务器下载xml文件?

javascript - 如何在服务器端接收td元素的数据