weixin_40103859
今天很努力
采纳率100%
2019-03-05 20:20

SpringSecurity登录的时候一直重定向,回到登录页面

5
  • spring
  • eclipse
  • java
  • java-ee
已采纳

springsecurity3.2

说起来,我这个原本前台是ANGULARJS+HTML写的

但是公司单点登录必须要JSP页面,因为是老系统,html不支持

所以没办法,就写了个JSP来登录

然后我登录上去会报302,而且response里面带location:login.jsp

我确认过用户名密码,没问题,而且我也重写了UserDetailsService

但是根本没有到UserDetailServic这一步,应该是授权的时候就不通过

说实话,对springsecurity不太了解,下面是配置文件,麻烦大神指点!


config-file

<!-- 以下页面不被拦截 -->
    <http pattern="/login_sso.jsp" security="none"></http>
    <http pattern="/css/**" security="none"></http>
    <http pattern="/fonts/**" security="none"></http>
    <http pattern="/images/**" security="none"></http>
    <http pattern="/js/**" security="none"></http>
    <http pattern="/lib/**" security="none"></http>
    <http pattern="/plugins/**" security="none"></http>

    <http use-expressions="false">
        <!-- 拦截规则 -->
        <intercept-url pattern="/**" access="ROLE_USER" />
        <!-- 登录配置  1登陆页面 2登陆成功跳转页面 3登录失败跳转页面 4总是使用默认跳转页面-->
        <form-login login-page="/login_sso.jsp" default-target-url="/index.html" login-processing-url="/j_spring_security_check"
            authentication-failure-url="/login.html" always-use-default-target="true"/> 
        <csrf disabled="true"/>
        <!-- 由于使用了框架页面,所以要进行以下配置 -->
        <headers>
            <frame-options policy="SAMEORIGIN"/>
        </headers>
        <!-- 登出配置 -->
        <logout logout-url="/logout" logout-success-url="/login_sso.jsp"/>
    </http>



login.jsp

<form id="loginForm" name="loginForm" action="/modify/j_spring_security_check" method="post" >
                <input type="text" id="username" name="name"  />
                <input type="password" id="password" name="password" />
                <input value="登录" style="width:100%;" type="button" onclick="document:loginForm.submit()">
            </form>




response信息,这个是向login-processing-url发起请求后的返回信息,直接被重定向回login.jsp了,而且都没到UserDetailService


图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • weixin_40103859 今天很努力 2年前

    LZ后来试了一下,应该是路径问题
    在localhost上,项目地址=http://localhost:8080/ POST登录请求url=http://localhost:8080/login 可以正常登录
    可是发布到tomcat上的时候项目自动多了个工程名 ,项目地址变成了http://localhost:8080/project,所以我在提交
    POST请求的时候,http://localhost:8080/login就变成了404,而POST如果添加了项目名,请求url=http://localhost:8080/project/login
    但是这又不是正确的路径,也就是说SPRING SECURITY不识别,我在config里面定义了login-processing-url='/login"也不行,
    最后,改成login-processing-url='/project/login" action="/project/project/login" 这就能正常登录

    点赞 评论 复制链接分享
  • devmiao devmiao 2年前
  • qq_40662424 TheFeasterfromAfar 8月前

    login-processing-url字段貌似需要和登陆表单的action的url一致

    点赞 评论 复制链接分享