bean.setUnauthorizedUrl(“/unauthorizedurl”);
Map<String, String> map = new LinkedHashMap<>();
map.put(“/doLogin”, “anon”);
map.put(“/**”, “authc”);
bean.setFilterChainDefinitionMap(map);
return bean;
}
}
在这里进行 Shiro 的配置主要配置 3 个 Bean :
-
首先需要提供一个 Realm 的实例。
-
需要配置一个 SecurityManager,在 SecurityManager 中配置 Realm。
-
配置一个 ShiroFilterFactoryBean ,在 ShiroFilterFactoryBean 中指定路径拦截规则等。
-
配置登录和测试接口。
其中,ShiroFilterFactoryBean 的配置稍微多一些,配置含义如下:
-
setSecurityManager 表示指定 SecurityManager。
-
setLoginUrl 表示指定登录页面。
-
setSuccessUrl 表示指定登录成功页面。
-
接下来的 Map 中配置了路径拦截规则,注意,要有序。
这些东西都配置完成后,接下来配置登录 Controller:
@RestController
public class LoginController {
@PostMapping(“/doLogin”)
public void doLogin(String username, String password) {
Subject subject = SecurityUtils.getSubject();
try {
subject.login(new UsernamePasswordToken(username, password));
System.out.println(“登录成功!”);
} catch (AuthenticationException e) {
e.printStackTrace();
System.out.println(“登录失败!”);
}
}