【Spring Security使用JPA连接数据库后无法正确读取到权限 _springcloud 】 | IT修真院·坑乎
咨询电话 : 010-59478634
切换导航
首页
我的提问
我的回答
我的点赞
消息通知
个人主页
×
提示
尚未登陆,前往官网登陆?
×
提示
尚未登陆,前往官网登陆?
Spring Security使用JPA连接数据库后无法正确读取到权限
我也踩过这个坑(
1
)
已统计您的踩坑,无需重复点击
回答(1)
springcloud
详细描述
无法成功鉴权
错误截图
已经把数据库中权限设置成ADMIN,运行后也显示是ADMIN,却无法完成鉴权
源码
package com.forezp.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.UserDetailsService; //启动Security @EnableWebSecurity //声明配置文件 @Configuration /** * spring Security默认是禁用注解的,要想开启注解, * 需要在继承WebSecurityConfigurerAdapter的类上加@EnableGlobalMethodSecurity注解, * 来判断用户对某个控制层的方法是否具有访问权限 */ @EnableGlobalMethodSecurity(prePostEnabled = true) public class SecurityConfig extends WebSecurityConfigurerAdapter { /** * 自动注入用户信息接口 */ @Autowired private UserDetailsService userDetailsService; /** * @formatter:off * 设置权限拦截规则 * @param http * @throws Exception */ @Override protected void configure(HttpSecurity http) throws Exception { http //授权请求 .authorizeRequests() //设置路径拦截规则,parmitAll():全部允许 .antMatchers("/css/**", "/index").permitAll() //拥有USER属性才可通过,区分大小写 .antMatchers("/user/**").hasAnyRole("ADMIN","USER") .antMatchers("/blogs/**").hasAnyRole("ADMIN","USER") .and() //设置默认表单跳转 .formLogin() //设置登录页面 .loginPage("/login") //设置登录失败页面 .failureUrl("/login-error") .and() //设置异常处理页面 .exceptionHandling().accessDeniedPage("/401"); http //设置登出页面 .logout() //设置注销成功页面 .logoutSuccessUrl("/"); } /** *自动注入认证管理器 * 全局配置:通过认证管理生成器注入用户信息 */ @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { //auth // //在内存验证中设置用户 // .inMemoryAuthentication() // //创建一个名字为forezp,密码为123456,角色为USER的用户 // .withUser("forezp").password("123456").roles("USER"); //auth // .inMemoryAuthentication() // .withUser("test").password("123456").roles("ADMIN"); auth.userDetailsService(userDetailsService); } // @formatter:on // @Bean // public UserDetailsService userDetailsService() { // InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); // 在内存中存放用户信息 // manager.createUser(User.withUsername("forezp").password("123456").roles("USER").build()); // manager.createUser(User.withUsername("admin").password("123456").roles("USER","ADMIN").build()); // return manager; // } }
编辑于2024-11-23
时间排序
热门排序
[无名弟子]林伟豪
0
权限的值错了,不应该写admin,仔细看一下Demo上面的权限值是怎么填的
查看全部>
编辑于2018-10-12
首页
1
末页
去第
页
确定
Copyright ©2015 北京葡萄藤信息技术有限公司 All Rights Reserved | 京ICP备15035574号-1
复制链接
新浪微博
微信扫一扫
2674
0
10
Spring Security使用JPA连接数据库后无法正确读取到权限
1
1