SpringBoot整合Shiro 三:整合Mybatis


搭建環境見: SpringBoot整合Shiro 一:搭建環境

shiro配置類見: SpringBoot整合Shiro 二:Shiro配置類

 

整合Mybatis

添加Maven依賴

  mysql、druid、mybatis

    lombok是可選項,方便寫實體類

<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
 </dependency><dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid-spring-boot-starter</artifactId>
     <version>1.1.10</version>
 </dependency><dependency>
     <groupId>org.mybatis.spring.boot</groupId>
     <artifactId>mybatis-spring-boot-starter</artifactId>
     <version>2.1.1</version>
 </dependency><dependency>
     <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
     <version>1.18.12</version>
     <optional>true</optional>
 </dependency>

 

實體類

User

package com.zy.pojo;
 ​
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 ​
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
 public class User {
     private int id;
     private String name;
     private String pwd;
 }

數據庫

 

application.properties

配置mybatis

mybatis.type-aliases-package=com.zy.pojo
mybatis.mapper-locations=classpath:mapper/*.xml

 

Mapper

UserMapper

 package com.zy.mapper;
 ​
 import com.zy.pojo.User;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
 ​
 @Mapper
 @Repository
 public interface UserMapper {
     User queryUserByName(String name);
 }

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zy.mapper.UserMapper"><select id="queryUserByName" parameterType="String" resultType="User">
         select * from user where name=#{name};
     </select></mapper>

 

service

UserService

package com.zy.service;
 ​
 import com.zy.pojo.User;
 ​
 public interface UserService {
     User queryUserByName(String name);
 ​
 }

UserServiceImpl

package com.zy.service;
 ​
 import com.zy.mapper.UserMapper;
 import com.zy.pojo.User;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 ​
 @Service
 public class UserServiceImpl implements UserService{
 ​
     @Autowired
     UserMapper userMapper;
 ​
     @Override
     public User queryUserByName(String name) {
         return userMapper.queryUserByName(name);
     }
 }

 

UserRealm

  因為整合了Mybatis,所以使用數據庫來進行認證

AuthenticationInfo

//認證
 @Override
 protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
     System.out.println("執行了=>認證doGetAuthenticationInfo");
 ​
     UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;
 ​
     //用戶名+密碼
     User user = userService.queryUserByName(token.getUsername());
 ​
     if (user == null) {
         return null;
     }
 ​
     //密碼認證,shiro做
     return new SimpleAuthenticationInfo("", user.getPwd(), "");
 }

controller不用變

 

測試

登錄

成功

存在安全隱患,后續可以通過加密操作保障安全

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM