SpringBoot整合Shiro 三:整合Mybatis

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

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

 

整合Mybatis

添加Maven依賴

  mysql、druid、mybatismysql

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

<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>

 

實體類

Usersql

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,因此使用數據庫來進行認證apache

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不用變mybatis

 

測試app

登陸

成功

存在安全隱患,後續能夠經過加密操做保障安全

相關文章
相關標籤/搜索