1,我先要确定是我配置shiro有问题,还是和我的tomcat有关系?
@RequestMapping("login")
public Object Login(@RequestParam String username,@RequestParam String password) {
Map<String, Object> result = new HashMap<>();
result.put("code", "200");
result.put("msg", "登录成功");
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(username, password, true);
try {
subject.login(usernamePasswordToken);
UserList user = (UserList) subject.getPrincipal();
刚认证完的时候没有问题,当第二前端发送来请求的时候
@RequestMapping(value="CooperationCompany",method=RequestMethod.POST)
public Object PostCooperationCompany(@RequestBody V_Project_CooperationCompany vpj) {
Map<String, Object> result = new HashMap<>();
Subject subject = SecurityUtils.getSubject();
UserList u=(UserList)subject.getPrincipal();
此时的u为null。之前一直好着呢,也不知道怎么就不行了,按照网上的折腾了一顿还是不行,下面是配置文件
@Configuration
public class ShiroConfiguration {
@Bean
public static DefaultAdvisorAutoProxyCreator getDefaultAdvisorAutoProxyCreator(){
DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator=new DefaultAdvisorAutoProxyCreator();
defaultAdvisorAutoProxyCreator.setUsePrefix(true);
return defaultAdvisorAutoProxyCreator;
}
@Bean
public Md5Realm myShiroRealm() {
Md5Realm myShiroRealm = new Md5Realm();
return myShiroRealm;
}
@Bean
public SecurityManager securityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(myShiroRealm());
return securityManager;
}
@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager);
return shiroFilterFactoryBean;
}
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
return authorizationAttributeSourceAdvisor;
}
}
不知道跟容器是否有关系,这个怎么解决。