【问题标题】:Difficulties with basic Spring Security Configuration基本 Spring Security 配置的困难
【发布时间】:2012-12-18 09:42:22
【问题描述】:

我正在尝试为 spring 项目构建一个非常基本、直接的身份验证。

我遇到的问题是应用程序不断将我发送到“登录失败”页面,尽管我已经声明了 2 个基本帐户(管理员和用户)。

我的应用程序-Security.xml:

<http auto-config="true" use-expressions="true">
        <form-login login-processing-url="/resources/j_spring_security_check" login-page="/login" authentication-failure-url="/login/denied" />
        <logout logout-url="/resources/j_spring_security_logout" />
        <!-- Configure these elements to secure URIs in your application -->
        <intercept-url pattern="/choices/**" access="hasRole('ROLE_ADMIN')" />
        <intercept-url pattern="/member/**" access="isAuthenticated()" />
        <intercept-url pattern="/resources/**" access="permitAll" />
        <intercept-url pattern="/login" access="permitAll" />
        <intercept-url pattern="/home/**" access="hasRole('ROLE_ADMIN')" />
        <intercept-url pattern="/*Details/*" access="hasRole('ROLE_USER')" />

    </http>
    <!-- Configure Authentication mechanism -->
    <authentication-manager alias="authenticationManager">
        <!-- SHA-256 values can be produced using 'echo -n your_desired_password | sha256sum' (using normal *nix environments) -->
        <authentication-provider>
            <password-encoder hash="sha-256" />
            <user-service>
                <user name="admin" password="admin" authorities="ROLE_ADMIN" />
                <user name="user" password="user" authorities="ROLE_USER" />
            </user-service>
        </authentication-provider>
    </authentication-manager>

我非常基本的登录表单:

<form action="/${app_name}/resources/j_spring_security_check" method="POST">
        <label for="j_username">Username</label>
        <input id="j_username" name="j_username" type="text" /><br/>

        <label for="j_password">Password</label>
        <input id="j_password" name="j_password" type="password" /><br/>

        <input type="submit" value="Login" />
    </form>

目前,控制器仅用于解析登录、登录/拒绝等 URL。

我刚从 Spring 和 Roo 开始,所以这可能只是我忽略的一些显而易见的事情。

感谢任何花时间回答的人。

【问题讨论】:

    标签: spring authentication login spring-security spring-roo


    【解决方案1】:

    你的问题是你定义了一个密码编码器

    <password-encoder hash="sha-256" />
    

    当您的密码是纯文本时

    <user name="admin" password="admin" authorities="ROLE_ADMIN" />
    

    删除编码器或(更好)指定密码,使用您选择的算法编码 (sha-256)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-08
      • 2015-03-29
      • 2016-09-08
      • 2021-02-15
      • 2012-02-09
      • 1970-01-01
      • 2012-01-23
      • 2011-01-08
      相关资源
      最近更新 更多