spring boot vue 前后端分离 shiro 认证失败

博客探讨了在Spring Boot后端集成Shiro进行认证时遇到的问题,尽管用户具有权限,但认证仍然失败。文章主要关注点在于前端Vue.js部分的登录实现,特别是`log.js`和`request.js`中的授权令牌设置。后端涉及的组件包括`usersController`、`foodController`、`MyRealm`、`ShiroConfig`和`ShiroSession`。
摘要由CSDN通过智能技术生成

shiro 认证失败 ,但是用户有权限

点击看那个博客

后端代码

usersController

package com.graduate.twentyone.controller;

import com.graduate.twentyone.diman.RestDate;
import com.graduate.twentyone.diman.Users;
import org.apache.catalina.User;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

@Controller
@ResponseBody
@CrossOrigin
public class UsersController {
   

/***
*@methodName userslogin
*@方法功能描述
*@params
* @param users
*@return com.graduate.twentyone.diman.RestDate
*@exception
*@author $風~$
*@Date 2021/3/22
*/
@RequestMapping(value = "userlogin" ,method = RequestMethod.POST)
// @GetMapping("/userlogin")
public RestDate userslogin(@RequestBody Users users) {
   
String uname = users.getUname();
String pwd = users.getPwd();
System.out.println( " 222 uname " + uname);
System.out.println(" 333 pwd " + pwd);

Subject subject = SecurityUtils.getSubject();

RestDate<Object> restDate = new RestDate<>(800, "error", "返回的数据");
String authToken1 = (String) subject.getSession().getId();

System.out.println(authToken1+" authtoken");
Map map = new HashMap();
map.put("authToken",authToken1);
try {
   
subject.login(new UsernamePasswordToken(uname, pwd));
} catch (IncorrectCredentialsException incorrectCredentialsException) {
   
restDate = new RestDate<>(2, "密码错误", "返回的数据");
return restDate;
} catch (UnknownAccountException UnknownAccountException) {
   
restDate = new RestDate<>(1, "账号错误", "返回的数据");
return restDate;
} catch (NullPointerException nullPointerException) {
   
restDate = new RestDate<>(0, "未输入信息", "返回的数据");
return restDate;
}
if (subject.isAuthenticated()) {
   
restDate = new RestDate<>(-1, "success",map);
return restDate;
}

return restDate;
}

}

foodController

package com.graduate.twentyone.controller;

import com.graduate.twentyone.diman.Food;
import com.graduate.twentyone.diman.RestDate;
import com.graduate.twentyone.service.FoodService;
import org.apache.shiro
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值