这篇文章将为大家详细讲解有关springsecurity如何使用application/json接收数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都网站制作、山南网络推广、成都小程序开发、山南网络营销、山南企业策划、山南品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供山南建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
spring security 使用 application/json 接收数据
不了解 security 的请看 security 的简单使用
https://blog.51cto.com/5013162/2404946
在使用 spring security 登录用户的时候 发现使用 application/josn 后台不能获取到数据
看 UsernamePasswordAuthenticationFilter 源码发现
//获取密码
protected String obtainPassword(HttpServletRequest request) {
return request.getParameter(passwordParameter);
}
//获取用户名
protected String obtainUsername(HttpServletRequest request) {
return request.getParameter(usernameParameter);
}
是直接从request 获取的 不是从 requestBody 中获取的
那我们就只需要重写这两个方法从 requestBody 中获取参数
重写 UsernamePasswordAuthenticationFilter 类
public class UserAuthenticationFilter extends UsernamePasswordAuthenticationFilter {
private ThreadLocal
登录成功处理类
LoginSuccessHandler.class
@Component
public class LoginSuccessHandler implements AuthenticationSuccessHandler {
@Override
public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
httpServletResponse.setContentType("application/json;charset=UTF-8");
httpServletResponse.getWriter().write(authentication.getName());
}
}
用户校验处理类
@Component
public class UserDetailServiceImpl implements UserDetailsService {
/**
* 用户校验
* @param s
* @return
* @throws UsernameNotFoundException
*/
@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
Collection collection = new ArrayList<>();//权限集合
String password = new BCryptPasswordEncoder().encode("123456");
User user = new User(s,password,collection);
return user;
}
}
改造完成 支持 post application/json 同时也支持 post form-data/x-www-form-urlencoded
都可以获取到传入的参数
关于“springsecurity如何使用application/json接收数据”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
文章标题:springsecurity如何使用application/json接收数据
转载来源:
http://www.cdkjz.cn/article/pccghc.html