关于我spring security 项目学习

今天完成了尚硅谷视频spring security的学习。整理一下我在整合前后端把项目跑起来时遇到的问题。一开始前端页面报错sass有错,百度卸载重装sass即可。后来登录有问题后台报错

Invalid bound statement (not found): com.atguigu.aclservice.mapper.PermissionMapper.selectAllPermissionValue

关于这个问题已经遇到多次 ,绑定有问题 。仔细检查mapper和对应的xml并没有错,百度粘贴以下代码到pom文件 ,看解释说这里是因为xml不在resource文件夹下面。

 <build>
        <resources>
            <resource>
                <!-- xml放在java目录下-->
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <!--指定资源的位置(xml放在resources下,可以不用指定)-->
            <!--<resource>-->
                <!--<directory>src/main/resources</directory>-->
            <!--</resource>-->
        </resources>
    </build>

这个问题解决了,又出现了新的问题,点击登录后一直在转圈然后返回超时异常,debug两遍发现执行到将用户权限存入redis后没有再执行了,以为是chain.doFilter没写,其实并不是(本案例就不用写),这时想到去redis查一下是否已经存入用户名及权限信息,原来之前redis客户端没有开启,开启后就可以了。
就在我登录之后没有跳转,只是Message了成功,这里应该是做了router拦截,去看了前端代码没找到拦截的那一段,琢磨了一下,我返回的R 的code和视频里不一样,于是去把code改了。

然后就是最后一个问题了,点击登录,message了一个失败和error,后台空指针了,去看了一下是代码写错了。redis获取权限列表是根据username,我写成了token,修改后终于大功告成!!

 private UsernamePasswordAuthenticationToken getAuthentication(HttpServletRequest request) {
        //从header获取token
        String token = request.getHeader("token");
        if(token!=null){
            //从token获取用户名
            String username = tokenManager.getUserInfoByToken(token);
           //从redis获取权限列表
            List<String> permissions =(List<String>) redisTemplate.opsForValue().get(username);
            List<GrantedAuthority> authorities = new ArrayList<>();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值