0

如何使用Shiro实现不同用户登录成功后跳转到不同主页?10

Shiro配置文件中successUrl指定的页面只有一个:

Java代码   收藏代码
  1. <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
  2. <property name="securityManager" ref="securityManager"/>
  3. <property name="loginUrl" value="/login"/>
  4. <property name="successUrl" value="/main"/>
  5. <property name="unauthorizedUrl" value="/login"/>
  6. ...
  7. </bean>

有的用户登录成功后要跳转到别的页面,怎么实现?

shiro 

2012年9月11日 11:48

  • Comment添加评论
  • 关注(0)

4个答案按时间排序按投票排序

0 0

在success页面进行判断,不同的情况下重定向到不同页面 
sendredirect

2012年9月26日 14:11

  • Comment添加评论
0 0

登陆成功后获取 Subject 对象. 
然后通过 Subject 对象来判断当前用户的角色/权限, 之后执行不同的跳转(直接在LoginAction中做).

我的登陆部分代码:

Java代码   收藏代码
  1. UsernamePasswordToken token = new UsernamePasswordToken(name, password);
  2. try {
  3. SecurityUtils.getSubject().login(token);
  4. Subject subject = SecurityUtils.getSubject();
  5. // 这里可以调用subject 做判断
  6. System.out.println("--------------------------------------------------------------");
  7. Boolean isadmin = subject.hasRole("admin");
  8. log.info("是否为管理员:"+isadmin);
  9. System.out.println("--------------------------------------------------------------");
  10. String userId = (String)subject.getPrincipal();
  11. User user = userService.getById(userId);
  12. ShiroUser shiroUser = shiroUserService.getByDyId(userId);
  13. if(shiroUser == null){
  14. this.addActionError(getText("login.failure"));
  15. return ERROR;
  16. }else{
  17. int used = shiroUser.getUsed();
  18. if(used == 1){
  19. this.addActionError(getText("login.noused"));
  20. return ERROR;
  21. }
  22. }
  23. Session session = subject.getSession(true);
  24. session.setAttribute(LoginAction.USER_KEY, user);
  25. session.setAttribute(LoginAction.SHIRO_USER_KEY, shiroUser);
  26. log.info("set workflow define to session");
  27. session.setAttribute("ptDefine", WorkflowContext.getPtDefine());
  28. catch (AuthenticationException e) {
  29. log.info(e.getMessage());
  30. this.addActionError(getText("login.failure"));
  31. }
  32. if (this.hasErrors()) {
  33. log.info("login erro ...");
  34. return ERROR;
  35. }

配置, 登陆跳转基本没用到, 注意 filterChainDefinitions,

Java代码   收藏代码
  1. <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
  2. <property name="securityManager" ref="securityManager"/>
  3. <!-- override these for application-specific URLs if you like: -->
  4. <property name="loginUrl" value="/index.jsp"/>
  5. <property name="successUrl" value="/home.jsp"/>
  6. <property name="unauthorizedUrl" value="/unauthorized.jsp"/>
  7. <!-- The 'filters' property is not necessary since any declared javax.servlet.Filter bean  -->
  8. <!-- defined will be automatically acquired and available via its beanName in chain        -->
  9. <!-- definitions, but you can perform instance overrides or name aliases here if you like: -->
  10. <!-- -->
  11. <property name="filters">
  12. <map>
  13. <entry key="authc">
  14. <bean class="org.apache.shiro.web.filter.authc.PassThruAuthenticationFilter"/>
  15. </entry>
  16. </map>
  17. </property>
  18. <property name="filterChainDefinitions">
  19. <value>
  20. static file chains
  21. /js/* = anon
  22. /css/* = anon
  23. /img/* = anon
  24. /images/* = anon
  25. /applets/* = anon
  26. # login/logout chain
  27. /login.action = anon
  28. # some example chain definitions:
  29. #/admin/** = authc, roles[ptAdmin]
  30. /docs/** = authc, perms[document:read]
  31. /** = user
  32. # more URL-to-FilterChain definitions here
  33. </value>
  34. </property>
  35. </bean>
2012年9月11日 15:19

  • Comment添加评论
0 0

1.力推 Filter 过滤器, 
2.后台判断根据权限跳转页面

2012年9月11日 12:38

  • Comment添加评论
0 0

最简单的办法到success页面进行判断,然后不同的用户再重定向到不同的页面。

2012年9月11日 12:19

0

如何使用Shiro实现不同用户登录成功后跳转到不同主页?10

Shiro配置文件中successUrl指定的页面只有一个:

Java代码   收藏代码
  1. <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
  2. <property name="securityManager" ref="securityManager"/>
  3. <property name="loginUrl" value="/login"/>
  4. <property name="successUrl" value="/main"/>
  5. <property name="unauthorizedUrl" value="/login"/>
  6. ...
  7. </bean>

有的用户登录成功后要跳转到别的页面,怎么实现?

shiro 

2012年9月11日 11:48

  • Comment添加评论
  • 关注(0)

4个答案按时间排序按投票排序

0 0

在success页面进行判断,不同的情况下重定向到不同页面 
sendredirect

2012年9月26日 14:11

  • Comment添加评论
0 0

登陆成功后获取 Subject 对象. 
然后通过 Subject 对象来判断当前用户的角色/权限, 之后执行不同的跳转(直接在LoginAction中做).

我的登陆部分代码:

Java代码   收藏代码
  1. UsernamePasswordToken token = new UsernamePasswordToken(name, password);
  2. try {
  3. SecurityUtils.getSubject().login(token);
  4. Subject subject = SecurityUtils.getSubject();
  5. // 这里可以调用subject 做判断
  6. System.out.println("--------------------------------------------------------------");
  7. Boolean isadmin = subject.hasRole("admin");
  8. log.info("是否为管理员:"+isadmin);
  9. System.out.println("--------------------------------------------------------------");
  10. String userId = (String)subject.getPrincipal();
  11. User user = userService.getById(userId);
  12. ShiroUser shiroUser = shiroUserService.getByDyId(userId);
  13. if(shiroUser == null){
  14. this.addActionError(getText("login.failure"));
  15. return ERROR;
  16. }else{
  17. int used = shiroUser.getUsed();
  18. if(used == 1){
  19. this.addActionError(getText("login.noused"));
  20. return ERROR;
  21. }
  22. }
  23. Session session = subject.getSession(true);
  24. session.setAttribute(LoginAction.USER_KEY, user);
  25. session.setAttribute(LoginAction.SHIRO_USER_KEY, shiroUser);
  26. log.info("set workflow define to session");
  27. session.setAttribute("ptDefine", WorkflowContext.getPtDefine());
  28. catch (AuthenticationException e) {
  29. log.info(e.getMessage());
  30. this.addActionError(getText("login.failure"));
  31. }
  32. if (this.hasErrors()) {
  33. log.info("login erro ...");
  34. return ERROR;
  35. }

配置, 登陆跳转基本没用到, 注意 filterChainDefinitions,

Java代码   收藏代码
  1. <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
  2. <property name="securityManager" ref="securityManager"/>
  3. <!-- override these for application-specific URLs if you like: -->
  4. <property name="loginUrl" value="/index.jsp"/>
  5. <property name="successUrl" value="/home.jsp"/>
  6. <property name="unauthorizedUrl" value="/unauthorized.jsp"/>
  7. <!-- The 'filters' property is not necessary since any declared javax.servlet.Filter bean  -->
  8. <!-- defined will be automatically acquired and available via its beanName in chain        -->
  9. <!-- definitions, but you can perform instance overrides or name aliases here if you like: -->
  10. <!-- -->
  11. <property name="filters">
  12. <map>
  13. <entry key="authc">
  14. <bean class="org.apache.shiro.web.filter.authc.PassThruAuthenticationFilter"/>
  15. </entry>
  16. </map>
  17. </property>
  18. <property name="filterChainDefinitions">
  19. <value>
  20. static file chains
  21. /js/* = anon
  22. /css/* = anon
  23. /img/* = anon
  24. /images/* = anon
  25. /applets/* = anon
  26. # login/logout chain
  27. /login.action = anon
  28. # some example chain definitions:
  29. #/admin/** = authc, roles[ptAdmin]
  30. /docs/** = authc, perms[document:read]
  31. /** = user
  32. # more URL-to-FilterChain definitions here
  33. </value>
  34. </property>
  35. </bean>
2012年9月11日 15:19

  • Comment添加评论
0 0

1.力推 Filter 过滤器, 
2.后台判断根据权限跳转页面

2012年9月11日 12:38

  • Comment添加评论
0 0

最简单的办法到success页面进行判断,然后不同的用户再重定向到不同的页面。

2012年9月11日 12:19

如何使用Shiro实现不同用户登录成功后跳转到不同主页?相关推荐

  1. 登录成功后怎么跳转页面html,怎么设置登录成功后跳转到相应的页面

    想要用angularjs实现的功能是 一进入就是一个登录页面(login.html),如果没有账号密码就注册,登录成功后跳转到相应的页面(shopcart.html) 碰到的问题 1.一进入页面没有显 ...

  2. html登陆成功后跳转页面跳转,怎么设置登录成功后跳转到相应的页面

    想要用angularjs实现的功能是 一进入就是一个登录页面(login.html),如果没有账号密码就注册,登录成功后跳转到相应的页面(shopcart.html) 碰到的问题 1.一进入页面没有显 ...

  3. 用php写登录成功后的界面,登录成功后跳转_php如何实现登录成功后跳转页面

    摘要 腾兴网为您分享:php如何实现登录成功后跳转页面,指南针,优软商城,优美图,天天美剧等软件知识,以及蓝光mp3剪切器,微信6,scandallpro,新页生产管理软件,asmr音频,lc标签打印 ...

  4. 登录成功后跳回到原来页面

    应用场景:一般网页游客和登录用户看到的内容是有区别的,如果一个未登录的用户在看到登录提示后跳转到登录界面登录,那么登录成功后怎么返回到该页面呢? 写这篇博客是因为我自己把解决问题的方向想偏了,本来实现 ...

  5. Winform中实现简单的登录成功后跳转到主页面的逻辑

    场景 Winform中实现运行项目后首先启动登录窗体,验证成功之后,跳转到主页面. 注: 博客: BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_CSDN博客-C#,SpringBoot, ...

  6. js做简单的登录页面以及附加条件,登录成功后跳转

    新手第一次上传,还不会介绍,很简单,能看懂不难的 <!doctype html> <html lang="en"><head><meta ...

  7. java shiro登录实例_使用Shiro实现登录成功后跳转到之前的页面

    这个问题是之前在做登录注册模块时遇到的需求,如何用户直接访问登录页面,可以控制直接跳到首页,但是如果是用户没有登录直接访问了购物车等需要经过身份认证的页面,或者是因为session超时,用户需要重新登 ...

  8. 用户登录成功后才进入主窗口进行其他操作

    应用前景:面对一个应用程序,用户只有输入正确的用户名和密码后,才能进入主窗口进行其他的操作:否则,提示登录失败,重新输入. 开发环境:Windows XP + VC6.0 新建一个基于MFC的单文档应 ...

  9. cas登录成功后不跳转成功页面_SpringSecurity用户登录成功后页面跳转原理剖析

    Spring Security 框架在用户成功登录后的处理逻辑,相对来说比较复杂,比较绕,下面我们就关键逻辑,进行相关分析. 首先,框架默认的 AuthenticationSuccessHandler ...

最新文章

  1. 第一个晶体管是如何工作的?
  2. vscode怎么弄php,vscode如何设置语言
  3. Gradle善良:仅添加包装用于战争
  4. oracle数据库扩容方案_ORACLE数据库扩容
  5. NetBeans 时事通讯(刊号 # 120 - Oct 14, 2010)
  6. IntelliJ IDEA导包快捷键
  7. 监控行业常见视频格式
  8. 计算机二级知识普及挑战赛答案,全国计算机二级试题库
  9. 例说图解TCP/IP协议族--PKI与证书(7)之给思科路由器制作证书
  10. python实现杨辉三角的规律_Python实现杨辉三角算法
  11. CSS3 按钮 打钩
  12. Linux7中安装DNS服务,CentOS7/RHEL7搭建DNS服务器
  13. 工作内存与主内存是什么,硬件层面的存储架构是什么样,线程的实现原理是什么
  14. netlink实现驱动和应用层通信
  15. 教你自动识别快递公司,过滤重复单号,查询物流信息
  16. tomcat配置-超有效-80岁奶奶用了都说好
  17. 2 路 FULL Cameralink 视觉检测 BOX
  18. 手把手教你摆脱愚蠢的有道云笔记过上Typora的好日子
  19. RT-thread应用讲解——通过U盘升级程序固件
  20. 狗蛋与babel的初遭遇

热门文章

  1. 连续签到积分兑换试用流量主小程序开发
  2. 服务器系统盘用多少g合适,windows10系统盘需要多大_win10系统盘需要多少g
  3. Maven引入nacos的版本问题以及如何在阿里Maven仓库中找到想要的jar和Maven中的groupId、artifactId、version
  4. RK3288 Android 5.1 固件 编译
  5. 开发时加载页面出现404,505等错误状态码的含义
  6. Android安卓开发高级应用-软件更新(联网-全更新增量更新)
  7. 警查审问四名嫌疑人,其中三人说真话,一人说谎。
  8. 苹果联合创始人狂喷iPhone 13:与上一代产品没什么差别
  9. TIA博途中FC和FB的区别与应用
  10. 如何提高自己的写作能力