重定向已登录和未登录的用户

时间:2019-12-30 16:43:13

标签: java spring spring-boot spring-security

我正在尝试在其他登录用户(例如“ Admin”)的jsp页面中重定向,并在另一视图中重定向未登录的用户。到目前为止,这是我的方法...

@RequestMapping(value = "/lidhOfruesKerkues", method = RequestMethod.POST)
    public ModelAndView lidhOfruesKerkues(@ModelAttribute("merrPersiperKerkues") Kerkues k, Ofrues ofrues,
            Authentication authResult) {
        ofruesService.addOfrues(ofrues);
        int kerkuesId = k.getKerkuesId();
        ofruesService.matchOfruesKerkues(kerkuesId);
        String role = authResult.getAuthorities().toString();
        if (role.contains("ROLE_ADMIN")) {
            return new ModelAndView("redirect:/adminHome");
        } 
        return new ModelAndView("redirect:/ofrojNdihmeView/getKerkuesAktiv");
    }

当我作为未登录用户时,抛出的错误是java.lang.NullPointerException: null,它来自“角色”。如果我以ADMIN身份登录,它将正常工作并重定向我。 预先感谢。

1 个答案:

答案 0 :(得分:0)

您需要在代码中添加一个空检查,如下所示:

String role = null;
if (authResult != null && authResult.getAuthorities() != null) {
    role = authResult.getAuthorities().toString();
}
if (role != null && role.contains("ROLE_ADMIN")) {