java - Spring Security基本路径重定向

标签 java spring authentication spring-security

我的应用程序的基本 uri 是 localhost:8080/COMEI_Beneficiario 但我必须编写 localhost:8080/COMEI_Beneficiario/login 才能访问。在其他应用程序中,当写入基本 uri 时,它会将自身重定向到 /login ,但我无法找到配置之间的差异。您将在下面找到 .xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security-3.1.xsd
        http://www.springframework.org/schema/util 
        http://www.springframework.org/schema/util/spring-util-3.1.xsd">



    <http auto-config="true"  use-expressions="true">
        <intercept-url pattern="/**" access="hasRole('ROLE_ANONYMOUS')" />
        <intercept-url pattern="/login" access="permitAll"/>
        <intercept-url pattern="/jcaptcha" access="permitAll"/>
        <intercept-url pattern="/olvidePassword" access="permitAll"/>
        <intercept-url pattern="/recovery/*" access="permitAll"/>
        <intercept-url pattern="/usuario/*" access="permitAll"/>
        <intercept-url pattern="/paginaMensajes" access="permitAll"/>
        <intercept-url pattern="/loginfailed" access="permitAll"/>
        <intercept-url pattern="/resources/**" access="permitAll" />
        <intercept-url pattern="/menu" access="hasRole('MENU_BENEFICIARIO')" />

<!--        <intercept-url pattern="/" access="hasRole('0')"/> -->
        <intercept-url pattern="cartilla" access=" hasRole('BENEFICIARIO')" />
        <intercept-url pattern="/cartilla/**" access=" hasRole('BENEFICIARIO')" />
        <intercept-url pattern="consumos" access=" hasRole('CONSUMOS')" />
        <intercept-url pattern="/consumos/**" access=" hasRole('CONSUMOS')" />
<!--        <intercept-url pattern="/**" access="hasRole('0')" /> -->
        <access-denied-handler error-page="/403"/>

        <form-login login-page="/login" default-target-url="/menu"
            authentication-failure-url="/loginfailed" always-use-default-target="true"  
    />


        <logout logout-url="/j_spring_security_logout" invalidate-session="true" logout-success-url="/logout"/>
    </http>

<authentication-manager>
      <authentication-provider user-service-ref="userDetailsServiceImpl">

      </authentication-provider>
</authentication-manager>

</beans:beans>

谢谢。

最佳答案

不确定这是否是最佳实践: 在 Controller 中添加如下方法

@RequestMapping(value={"/login","/"}, method=RequestMethod.GET)
public String home(){
   return "redirect:login";
}

第二种方法是编写一个login.jsp并将该jsp作为web.xml中的欢迎文件。在login.jsp中使用响应隐式对象重定向到“login”。

关于java - Spring Security基本路径重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28351023/

相关文章:

azure - AAD 应用程序注册不接受查询字符串参数

Java - 跨服务器散列/加密

java - 如何在java中将TextView放置到屏幕底部

java - Cloudera Manager 4.0 字数统计示例

java - Spring MVC - 处理 HttpMediaTypeNotAcceptableException 时如何设置返回媒体类型?

Java Batch (JSR-352) - 如何从 batchlet 设置作业参数?

java - 类型参数 'S' 的推断类型 'S' 不在其范围内;

java - 使用Predicate和子文档$type查询mongodb

php - laravel5.1 API 的基本 http 身份验证

php - Symfony 身份验证(您不能从 EntityUserProvider 刷新用户)