Spring boot整合shiro框架(2)

form提交

复制代码
            <form th:action="@{/login}" method="POST">
                <div class="form-group has-feedback">
                    <input name="username" type="text" class="form-control"
                        placeholder="用户账户" required="" value="test"/><span
                        class="glyphicon glyphicon-envelope form-control-feedback"></span>
                </div>
                <div class="form-group has-feedback">
                    <input name="password" type="password" class="form-control"
                        placeholder="用户密码" required="" value="test"/><span
                        class="glyphicon glyphicon-lock form-control-feedback"></span>
                </div>
                <div class="row">
                    <!-- /.col -->
                    <div class="col-xs-12">
                        <button class="btn btn-default submit">
                            <span>登录</span>
                        </button>
                    </div>
                    <!-- /.col -->
                </div>
                <div id="tips"></div>
            </form>
复制代码

注:input 属性使用name

 

后台登录验证代码

复制代码
    /**  
     * 认证信息(身份验证) Authentication 是用来验证用户身份  
     */ 
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(
            AuthenticationToken token) throws AuthenticationException {
        System.out.println("身份认证-->MyShiroRealm.doGetAuthenticationInfo()");
        // 获取用户的输入帐号  
        String username = (String) token.getPrincipal();
        System.out.println("token.getCredentials():"+token.getCredentials());
//      通过username从数据库中查找 User对象,如果找到,没找到.  
//      实际项目中,这里可以根据实际情况做缓存,
//      如果不做,Shiro自己也是有时间间隔机制,2分钟内不会重复执行该方法 
        SysRightUser sysRightUser = userInfoService.selectByAccount(username);
        if (sysRightUser == null) {
            return null;
        }
        SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(
                sysRightUser, // 用户对象
                sysRightUser.getPassword(), // 密码
                getName() // realm name
        );
        Session session = SecurityUtils.getSubject().getSession();
        session.setAttribute("userInfo",sysRightUser);
        return authenticationInfo;

    }
复制代码

 

posted @   北冥冰皇  阅读(839)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示