春天的网络安全问题

时间:2012-03-18 18:26:45

标签: jsf spring-security richfaces

所有

我有我的应用程序设置,以便我可以使用特定的用户名和密码组合:

<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
                     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/security
                     http://www.springframework.org/schema/security/spring-security-3.0.xsd">

<http use-expressions="true" access-denied-page="/start.jsf">
    <intercept-url pattern="/start.jsf" filters="none" />
    <intercept-url pattern="/web/**" access="isAuthenticated()" />
    <form-login login-page="/start.jsf" default-target-url="/web/user/homepage.jsf" authentication-failure-url="/start.jsf?state=failure"/>
    <logout logout-success-url="/start.jsf?state=logout"  />
</http>

<!--    <authentication-manager alias="authenticationManager">
    <authentication-provider>
        <password-encoder hash="md5" />
        <jdbc-user-service data-source-ref="dataSource"
            users-by-username-query="SELECT U.email_address AS username, U.password as password,  'true' as enabled FROM users U where U.email_address=?"
            authorities-by-username-query="SELECT U.email_address AS username, 'USER' as authority FROM users U WHERE U.email_address=?"
            role-prefix="ROLE_" />
    </authentication-provider>
</authentication-manager> -->

<authentication-manager alias="authenticationManager">
    <authentication-provider>
        <password-encoder hash="md5"/>
        <user-service>
            <user name="user1" password="a564de63c2d0da68cf47586ee05984d7" authorities="ROLE_SUPERVISOR, ROLE_USER, ROLE_TELLER" />
        </user-service>
    </authentication-provider>
</authentication-manager>

</beans:beans>

问题是,当我要求它转到dataSource时,它找不到数据源。原因是我在配置文件夹中有另一个ApplicationContext.xml,我的所有java源文件都是。人们通常如何组织项目以使该文件能够获取数据源文件?我想相应地设置项目......感谢输入!

此外,登录有效,但是,一旦用户登录,我希望能够获取用户ID /密码,而我无法登录。怎么可能?

1 个答案:

答案 0 :(得分:1)

暗示您有2个带有弹簧上下文配置的XML文件(在类路径中):main-ctx.xmlsecurity-ctx.xml,并且您正在使用main-ctx.xml实例化您的应用上下文。

然后,您可以使用security-ctx.xml中的main-ctx.xml<import resource="classpath:security-ctx.xml"/> 中的配置包含到应用上下文中(取决于您的文件位置路径可能不同):

dataSource

因此,您可以在main-ctx.xml中定义security-ctx.xml,并在authentication-manager配置的{{1}}中使用它。