所有
我有我的应用程序设置,以便我可以使用特定的用户名和密码组合:
<?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 /密码,而我无法登录。怎么可能?
答案 0 :(得分:1)
暗示您有2个带有弹簧上下文配置的XML文件(在类路径中):main-ctx.xml
和security-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}}中使用它。