我无法在使用Spring Boot和maven放在一起的rest API上进行身份验证。我根本无法进行身份验证。
这是我目前的安全配置:
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/person/getAll").permitAll()
.anyRequest().authenticated();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
这就是" / person / getAll"端点...
@RequestMapping("/getAll")
List<Person> getAllPeople()
{
log.info("Getting all users in system.");
return repository.findAll();
}
现在,我所拥有的是一个实际可行的端点 - 但它是未经身份验证的(因为我将它列在安全配置的perminAll部分中) -
但是现在我想要这样做,所以我必须拥有&#34; ROLE_USER&#34;角色 - 为了取回我的人员名单。
我已尝试将其从许可证中删除,并在方法上方添加@PreAuthorise(&#34; hasRole(&#39; ROLE_USER&#39;)&#34;)但这只会导致403响应 - 我根本没想到。我想这将允许我运行以下任一curl命令并查看数据:
curl --user user:password localhost:8080/person/getAll
或
curl user:password@localhost:8080/person/getAll
对于每个人的理智 - 当我使用当前问题中列出的代码时(我得到数据 - 即使密码错误,哈哈)
长期来看,我的目标实际上是删除内存中的内容并执行常规查询以获取凭据,但我只是想确保我的内容现在正常工作。
答案 0 :(得分:0)
我无法在使用Spring Boot和maven放在一起的rest API上进行身份验证。 我根本无法进行身份验证。
我认为您根本无法进行身份验证,因为您未在Spring Security配置文件中指定在访问页面时需要进行哪种安全保护。
例如:您可以选择具有httpBasic或formLogin安全性。
现在,我所拥有的是一个实际可行的端点 - 但未经身份验证(因为我已将其列在安全配置的perminAll部分中) -
例如,如果您要在Spring Security配置文件中添加httpBasic,您将获得http基本身份验证,但是当您未指定任何安全方法时,您将无法获得任何身份验证
anchor