账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    spring boot +shiro如何实现多登陆入口。
    • 2020-01-01 00:00
    • 10
    42
    0

    具体是这样有3个登陆入口:

    /user/login

    /wx/login

    /admin/login

    具体想要用shiro实现的效果是

    访问/user/**页面的用户,未登录的话就跳/user/login页面登陆,/user/login页面登陆成功跳转/user/index。

    访问/wx/**页面的用户,未登录的话就跳/wx/login页面登陆,/user/login页面登陆成功跳转/wx/index。

    amin的同上

    我知道可能需要实现不同的realm,但是google了很久都只是验证,但是没有说到未登录而访问/wx/**就跳转/wx/login怎么实现。

    求各路大神帮忙。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 安静的离开了 普通会员 1楼

      在Spring Boot中,我们可以使用Shiro来实现多登陆入口。以下是一个简单的示例:

      首先,我们需要在Spring Boot项目中添加Shiro依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖:

      xml <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-starter</artifactId> <version>1.4.2</version> </dependency>

      然后,我们需要在Spring Boot配置类中添加Shiro配置。以下是一个简单的示例:

      ```java @Configuration @EnableWebSecurity public class SecurityConfig {

      @Autowired
      private UserDetailsService userDetailsService;
      
      @Bean
      public PasswordEncoder passwordEncoder() {
          return new BCryptPasswordEncoder();
      }
      
      @Bean
      public TokenSecurityManager tokenSecurityManager() {
          TokenSecurityManager tokenSecurityManager = new TokenSecurityManager();
          tokenSecurityManager.setEncoder(passwordEncoder());
          tokenSecurityManager.setTokenRenewer(tokenRenewer());
          tokenSecurityManager.setTokenInvalider(tokenInvalider());
          return tokenSecurityManager;
      }
      
      @Bean
      public SecurityFilterChain securityFilterChain() {
          SecurityFilterChain filterChain = new SecurityFilterChain();
          filterChain.addFilter(new UsernamePasswordAuthenticationFilter());
          filterChain.addFilter(new ShiroFilter());
          return filterChain;
      }
      
      @Bean
      public UserDetailsService userDetailsService() {
          return new SimpleUserDetailsService();
      }
      
      @Bean
      public TokenRenewer tokenRenewer() {
          return new TokenRenewer();
      }
      
      @Bean
      public TokenInvalider tokenInvalider() {
          return new TokenInvalider();
      }
      

      } ```

      在这个示例中,我们创建了一个UserDetailsService和TokenRenewer的bean。这两个bean在Shiro的SecurityFilterChain中被添加。在TokenSecurityManager中,我们设置了密码编码器和TokenRenewer和TokenInvalider。这些bean将被Spring Security使用来处理用户的身份验证和令牌的生成。

      然后,我们创建了一个UsernamePasswordAuthenticationFilter和ShiroFilter的bean。这两个filter将在用户尝试登录时被使用。

      最后,我们创建了一个SimpleUserDetailsService的bean。这个bean将在用户被认证后被使用。

      这样,Spring Boot和Shiro就可以协同工作,实现多登陆入口。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部