Spring Security/rolesAllowed/antMatchers

 muc4093631 发布于 2023-02-11 13:46

我正在使用Spring Data REST,我的存储库中有一个find方法:

public List findByLastNameOrderByLastNameAsc(@Param("lastName") String lastName);

我试图为方法添加安全性,但没有运气.在我的数据库中,我有一个用户角色为'ROLE_USER'.当服务启动时,登录表单出现,我可以使用数据库中的凭据登录.

这是我的网络安全配置:

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {

    auth.jdbcAuthentication()
            .dataSource(dataSource)
            .usersByUsernameQuery("select username,identification,enabled from users where username = ?");


  }

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
    .authorizeRequests()
    .antMatchers("/contacts/findByLastNameOrderByLastNameAsc").hasRole("ADMIN")
    .antMatchers("/contacts/**").fullyAuthenticated()
    .antMatchers("/contacts/**").hasRole("USER")
    .anyRequest().authenticated()

    .and()
     .formLogin();
}

当我尝试在我的存储库中调用服务时,我没有看到任何身份验证错误.使用我的浏览器,即使数据库中的用户没有"ADMIN"角色,URL也会正常显示.

我尝试将'RolesAllowed'添加到我的存储库中的方法,但没有运气:

@RolesAllowed(value = { "ADMIN" })
public List findByLastNameOrderByLastNameAsc(@Param("lastName") String lastName);

我是否要正确地为Spring Data提供的REST API添加安全性?如何让这个工作的想法?

谢谢

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有