0

JSF Mojarra 2.1.18 および Primefaces 3.5 で Spring Security 3.0.6 を使用しています。

Spring Security の AuthenticationManager を注入する LoginManagedBean を作成しました。

 @ManagedBean
    @SessionScoped
    public class LoginManagedBean implements Serializable {

        private static final long serialVersionUID = 1L;

        private static transient final Log logger = LogFactory.getLog(LoginManagedBean.class);

        private LoginDTO login;

        private String username;

        private String password;

        @ManagedProperty(value = "#{authenticationManager}")
        private transient AuthenticationManager authenticationManager = null;

...

できます。しかし、ログインに失敗すると、正しい値で再度ログインすることはできません。authenticationManager オブジェクトをクリア/リセットする必要があると思いますが、方法がわかりません。助言がありますか?前もって感謝します!

4

1 に答える 1

1

あなたはそれを別の方法で行う必要があります。

1) 認証マネージャーを定義する

<s:authentication-manager>
    <s:authentication-provider>
        <s:user-service>
            <s:user name="root" password="root"/>
        </s:user-service>
    </s:authentication-provider>
</s:authentication-manager>

2) セキュリティ構成とフォーム ログインを定義する

<s:http auto-config="true" use-expressions="true">
    <s:intercept-url pattern="/favicon.ico" access="permitAll"/>
    <s:intercept-url pattern="/resources/**" access="permitAll"/>
    <s:intercept-url pattern="/login**" access="isAnonymous"/>
    <s:intercept-url pattern="/pages/*" access="hasAuthority('ROLE_USER')"/>      
    <s:form-login login-page="/login.xhtml" default-target-url="/"
                  authentication-failure-url="/login.xhtml?loginFailed=true"/>
</s:http>

3)@EnableWebMvc着る@Configuration

4) にフォームを作成して、データ (フィールドと) をlogin.xml投稿します。j_usernamej_password/j_spring_security_check

5) フィルタを追加web.xml

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>
于 2013-03-12T15:40:51.200 に答える