若依接入单点登录 SSO

  1. 前置条件,若依非vue版本,项目已同步单点登录的用户

https://download.csdn.net/download/weixin_43091752/88855942?spm=1001.2014.3001.5503

  1. 在LoginController中添加方法,成功就跳转项目index页面,失败就直接redirect 到登录页(单点登录页,非项目登录页)
	@Value("${shiro.user.loginUrl}")
    private String loginUrl;
    /**
     * SSOP访问
     * @param sessionid
     * @param statuscode
     * @return
     */
    @GetMapping("/SSOP")
    public String SSOPLogin(String sessionid,String statuscode) {
        System.err.println("sessionid: "+sessionid);
        System.err.println("statuscode: "+statuscode);

        if(statuscode!=null&&"xxx".equals(statuscode)){
            //通过sessionid使用接口获取到用户信息的用户名称,比对自己系统

            String userName =  sessionid;//----此处调用接口返回用户信息-暂用做用户名

            UsernamePasswordToken token = new UsernamePasswordToken(userName, Constants.SSOP_PW, false);
            Subject subject = SecurityUtils.getSubject();
            try
            {
                subject.login(token);
                return redirect("index");
            }
            catch (AuthenticationException e)
            {
                String msg = "用户或密码错误";
                if (StringUtils.isNotEmpty(e.getMessage()))
                {
                    msg = e.getMessage();
                }
                System.err.println(msg);
                return redirect(loginUrl);
            }
        }else{
            System.err.println("返回值状态异常");
            return redirect(loginUrl);
        }


    }
  1. 登录页设置,保证不会跳本项目的登录页
    (1)修改yml配置文件中shiro的登录地址,这个地址登录/退出都会跳转
    在这里插入图片描述
    (2)修改登录代码获取单点登录地址
/**
 * 登录验证
 * 
 * @author ruoyi
 */
@Controller
public class LoginController extends BaseController{
	
    @Value("${shiro.user.loginUrl}")
    private String loginUrl;
	
	//登录等方法 
	xxxx
	//报错就跳转单点登录页

	
}

  1. 在config文件夹下找到shiro文件,放行新增/sso接口
    在这里插入图片描述
  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值