@PreAuthorize注释无法正常工作

时间:2018-10-19 23:05:18

标签: security spring-boot

我必须使用@PreAuthorize批注保护我的RequestMethod.GET。 但是,一旦我尝试保护它的安全,每个人都将无法连接到已保护安全的站点。

这是我的错误消息:

  

2018-10-20 01:32:35信息a.wrk.web.LoggingAccessDeniedHandler-ADMIN试图访问受保护的资源:/ lagerstandortupdate / 1

除了注释我的方法,在启动Spring Boot时会自动创建一个用户和一些角色。 我使用了import.sql文件

INSERT INTO rolle(created_at, bezeichnung) VALUES (now(), 'ADMIN');
INSERT INTO rolle(created_at, bezeichnung) VALUES (now(), 'SUPERVISOR');
INSERT INTO rolle(created_at, bezeichnung) VALUES (now(), 'BENUTZER');

INSERT INTO benutzer(created_at, anzeigename, benutzername, dienstnummer, passwort) VALUES (now(), 'ADMIN', 'ADMIN', '123', 'anyHashedPassword');

INSERT INTO benutzer_rolle(benutzer_id,rolle_id) VALUES (1,1);

我不确定的是:我是否必须以特定格式导入角色,例如:

ROLE_BENUTZER or ROLE_USER or BENUTZER

这是我的RequestMethod.GET

@RequestMapping(value="/lagerstandortupdate/{id}", method=RequestMethod.GET)
@PreAuthorize("hasRole('ROLE_BENUTZER')")
public String aendernForm(@PathVariable("id") long id, Model model) {
    Lagerstandort exicting = lagerstandortRepository.findById(id);
    model.addAttribute("lagerstandort", exicting);
    return "lagerstandortupdate";
}

现在,我不确定hasRole是否必须具有ROLE_BENUTZER或BENUTZER? 我已经尝试了所有这些。

我的SecurityConfig看起来像这样:

@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter

也许有人可以给我一个很好的建议。

谢谢!

0 个答案:

没有答案