java-在Spring Security中从文件读取/添加用户凭证
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-在Spring Security中从文件读取/添加用户凭证,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2608字,纯文字阅读大概需要4分钟。
内容图文
![java-在Spring Security中从文件读取/添加用户凭证](/upload/InfoBanner/zyjiaocheng/685/228ef3391a16446091334363fbb10ef5.jpg)
Spring Security是否可以在文件中存储和修改用户凭证?
现在我有security.xml:
<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.xsd">
<http>
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login />
<logout />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />
<user name="user" password="user" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
我想要的只是将信息存储在诸如users.txt或users.xml之类的文件中,并可以随时添加或修改用户/密码.
解决方法:
您需要为此重写UserDetailsS??ervice
UserDao.java
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
/**
* @author asif.hossain
* @since 3/9/17.
*/
public class UserDao implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
String password = readPasswordFromFileOrDatabase(username);
if (password == null) throw new UsernameNotFoundException("");
return User
.withUsername(username)
.password(password)
.authorities("ROLE_USER")
.build();
}
private String readPasswordFromFileOrDatabase(String username) {
// Edit this code and read password and roles from data base or files
if (username.equals("user")) return "password";
return null;
}
}
并在security.xml中添加此类的bean
<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.xsd">
<http>
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login />
<logout />
</http>
<bean id="userDao" class="UserDao"></bean>
<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="userDao"></authentication-provider>
</authentication-manager>
内容总结
以上是互联网集市为您收集整理的java-在Spring Security中从文件读取/添加用户凭证全部内容,希望文章能够帮你解决java-在Spring Security中从文件读取/添加用户凭证所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。