今天在做项目的时候遇到这样的问题
用ip访问系统,登录成功后进入index页面,系统内所有的菜单都可以访问,没有问题
但是用域名访问系统的时候,可以进入登录页面,点击登录后也可以进入登录页面,但是index页面左边的菜单栏显示,右边的页面变成登录页面。
其中左边的iframe是通过ajax后台获取数据拼成菜单,右边iframe也是ajax获取数据显示报表
系统用的是springmvc+shiro+mybitis实现的
用到了单点登录
我的思路:
1.shiro登录权限问题,但是用ip可以正常访问啊,用域名就不行,而且sit环境是好的,uat环境就不行
2是不是springmvc或者服务器对域名访问方式做了限制?
3.ajax在请求的时候对域名访问这种方式有限制么?
网上找了半天没有解决,跪求大神帮忙,谢了
部分代码如下:
//单点登录成功以后执行下面的代码
Subject user = SecurityUtils.getSubject();
//登录
UsernamePasswordToken token = new UsernamePasswordToken(username,MD5Util.md5(password).toCharArray());
//设置为记住密码
//token.setRememberMe(true);
//shiro验证登录失败 UsernamePasswordToken 会抛出异常。
try {
//进行用户 身份认证
user.login(token);
//获取用户信息
User users = getCurrentUser();
//得到用户隶属的机构
//List orgRoleList=users.getOrgRole();
List orgList = orgService.getUserOrgListByUserID(users.getUserID());
if(orgList!=null&&orgList.size()>0){
//首次登陆给个默认机构
UserOrg currentOrgInfo = orgList.get(0);
//将当前机构放在session里
request.getSession().setAttribute("currentOrg", currentOrgInfo);
modelAndView.addObject(users);
modelAndView.addObject("orgList",orgList);
modelAndView.addObject("userName",users.getUserName());
modelAndView.addObject("flag", currentOrgInfo.getOrgId());
modelAndView.setViewName("index");
}
else{
modelAndView.addObject("errorInfo","无查看权限,请联系管理员!");
modelAndView.setViewName("login");
}
return modelAndView;
}