Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HTTP状态[403]。Spring MVC和ApacheTomcat 8.5.15_Java_Spring_Tomcat_Spring Security - Fatal编程技术网

Java HTTP状态[403]。Spring MVC和ApacheTomcat 8.5.15

Java HTTP状态[403]。Spring MVC和ApacheTomcat 8.5.15,java,spring,tomcat,spring-security,Java,Spring,Tomcat,Spring Security,我的问题是拒绝授权。这个问题是我在服务器上部署WAR文件时遇到的。我可以登录,但无法前进到用户面板,在那里访问权限只有ROLE\u user或ROLE\u ADMIN。我用localhost测试了我的应用程序,在授权方面没有问题。我将整个数据库从本地数据库导入到服务器数据库(我使用的是MySQL) 以下是错误: 这是我的密码: @配置 @启用Web安全性 @EnableGlobalMethodSecurity(securedEnabled=true) @ComponentScan(basePa

我的问题是拒绝授权。这个问题是我在服务器上部署WAR文件时遇到的。我可以登录,但无法前进到用户面板,在那里访问权限只有
ROLE\u user
ROLE\u ADMIN
。我用
localhost
测试了我的应用程序,在授权方面没有问题。我将整个数据库从本地数据库导入到服务器数据库(我使用的是MySQL)

以下是错误:

这是我的密码:

@配置
@启用Web安全性
@EnableGlobalMethodSecurity(securedEnabled=true)
@ComponentScan(basePackageClasses=UserDetailsServiceImpl.class)
公共类SecurityConfig扩展了WebSecurity配置适配器{
@自动连线
私有用户详细信息服务用户详细信息服务;
@凌驾
受保护的无效配置(HttpSecurity http)引发异常{
http
.csrf().disable()
.授权请求()
.antMatchers(“/admin/**”).access(“hasRole('ROLE\u admin')”)
.及()
.授权请求()
.antMatchers(“/user/**”).access(“hasRole('ROLE\u user')”)
.及()
.logout()
.logoutSuccessUrl(“/主页”)
.logoutUrl(“/logout”)
.及()
.formLogin()
.login页面(“/login”)
.defaultSuccessUrl(“/主页”)
.及()
.例外处理();
}
@凌驾
受保护的无效配置(AuthenticationManagerBuilder auth)引发异常{
认证
.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder());
}
@豆子
公共密码编码器PasswordEncoder(){
返回新的BCryptPasswordEncoder();
} 
}
@控制器
@安全({“角色\管理”})
@请求映射(value=“/admin”)
公共类管理员控制器{
@自动连线
私人用户服务;
@自动连线
私人用户角色服务用户角色服务;
@自动连线
专用密码编码器;
@RequestMapping(method=RequestMethod.GET)
公共字符串开始(模型){
model.addAttribute(“用户名”,SecurityContextHolder.getContext().getAuthentication().getName());
model.addAttribute(“userlist”,userService.getListOfUsers());
返回“管理/启动”;
}
}
@服务
公共类UserDetailsServiceImpl实现UserDetailsService{
@自动连线
私有UserDAO UserDAO;
@事务(只读=真)
public UserDetails loadUserByUsername(字符串用户名)引发UsernameNotFoundException{
User=userDAO.findByUsername(用户名);
如果(用户!=null){
布尔启用=user.getStatus().equals(UserStatus.ACTIVE);
布尔AccountNoneExpired=user.getStatus().equals(UserStatus.ACTIVE);
boolean-credientialsNonExpired=user.getStatus().equals(UserStatus.ACTIVE);
boolean accountNonLocker=user.getStatus().equals(UserStatus.ACTIVE);
收集权限=新建ArrayList();
for(角色:user.getRoles()){
添加(新的SimpleGrantedAuthority(role.getRole());
}
返回新的org.springframework.security.core.userdetails.User(User.getUsername(),
user.getPassword(),
启用,
会计非预期,
Crediesentials未经批准,
帐户锁,
当局);
}否则{
抛出新的UsernameNotFoundException(String.format(“未找到的用户:%1$d”,用户名));
}
}
}

你能用你调用问题时发送的确切信息(请求、标题等)更新问题,并显示添加的确切角色(是
USER
还是
ROLE\u USER
?)?好的,我更新了,在数据库中我有“ROLE\u USER”如果我是管理员,我可以调用你添加Spring安全日志吗(在日志配置中启用了级别
DEBUG
的情况下)添加到您的问题。它将显示403的原因。您是否可以使用调用时发送的确切信息(请求、标题等)更新问题,并显示添加的确切角色(是
USER
还是
ROLE\u USER
?)?好的,我更新了,在数据库中我有'ROLE_USER',如果我是管理员登录的,我会打电话给你,请你在你的问题中添加Spring安全日志(日志配置中启用了级别
DEBUG
)。它会显示403的原因。