From 60b061b7c6755c4152bb40cde7ff6fb23dc67a51 Mon Sep 17 00:00:00 2001 From: RainBus Date: Sun, 9 Jul 2023 23:28:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E5=90=88Shiro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 +++++ .../netstateproc/config/NetStateRealm.java | 23 +++++++++++++++ .../netstateproc/config/ShiroConfig.java | 22 +++++++++++++++ .../controller/UserController.java | 28 +++++++++++++++++++ .../netstateproc/model/eneity/User.java | 18 ++++++++++++ .../netstateproc/model/rest/req/LoginReq.java | 9 ++++++ .../netstateproc/model/rest/resp/Resp.java | 20 +++++++++++++ .../netstateproc/respository/UserRepo.java | 10 +++++++ .../netstateproc/service/UserService.java | 19 +++++++++++++ 9 files changed, 156 insertions(+) create mode 100644 src/main/java/com/wuyiqi/netstateproc/config/NetStateRealm.java create mode 100644 src/main/java/com/wuyiqi/netstateproc/config/ShiroConfig.java create mode 100644 src/main/java/com/wuyiqi/netstateproc/controller/UserController.java create mode 100644 src/main/java/com/wuyiqi/netstateproc/model/eneity/User.java create mode 100644 src/main/java/com/wuyiqi/netstateproc/model/rest/req/LoginReq.java create mode 100644 src/main/java/com/wuyiqi/netstateproc/model/rest/resp/Resp.java create mode 100644 src/main/java/com/wuyiqi/netstateproc/respository/UserRepo.java create mode 100644 src/main/java/com/wuyiqi/netstateproc/service/UserService.java diff --git a/pom.xml b/pom.xml index 8d935c7..59e3667 100644 --- a/pom.xml +++ b/pom.xml @@ -41,6 +41,13 @@ spring-boot-starter-test test + + + org.apache.shiro + shiro-spring-boot-web-starter + 1.11.0 + + diff --git a/src/main/java/com/wuyiqi/netstateproc/config/NetStateRealm.java b/src/main/java/com/wuyiqi/netstateproc/config/NetStateRealm.java new file mode 100644 index 0000000..a65d963 --- /dev/null +++ b/src/main/java/com/wuyiqi/netstateproc/config/NetStateRealm.java @@ -0,0 +1,23 @@ +package com.wuyiqi.netstateproc.config; + +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.realm.Realm; + +public class NetStateRealm implements Realm { + @Override + public String getName() { + return null; + } + + @Override + public boolean supports(AuthenticationToken token) { + return false; + } + + @Override + public AuthenticationInfo getAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { + return null; + } +} diff --git a/src/main/java/com/wuyiqi/netstateproc/config/ShiroConfig.java b/src/main/java/com/wuyiqi/netstateproc/config/ShiroConfig.java new file mode 100644 index 0000000..fd77142 --- /dev/null +++ b/src/main/java/com/wuyiqi/netstateproc/config/ShiroConfig.java @@ -0,0 +1,22 @@ +package com.wuyiqi.netstateproc.config; + +import org.apache.catalina.Realm; +import org.apache.shiro.spring.config.ShiroAnnotationProcessorConfiguration; +import org.apache.shiro.spring.config.ShiroBeanConfiguration; +import org.apache.shiro.spring.config.ShiroConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +@Configuration +@Import({ShiroBeanConfiguration.class, + ShiroConfiguration.class, + ShiroAnnotationProcessorConfiguration.class}) +public class ShiroConfig { + + @Bean + public Realm realm() { + return null; + } + +} diff --git a/src/main/java/com/wuyiqi/netstateproc/controller/UserController.java b/src/main/java/com/wuyiqi/netstateproc/controller/UserController.java new file mode 100644 index 0000000..39c9ae1 --- /dev/null +++ b/src/main/java/com/wuyiqi/netstateproc/controller/UserController.java @@ -0,0 +1,28 @@ +package com.wuyiqi.netstateproc.controller; + +import com.wuyiqi.netstateproc.model.eneity.User; +import com.wuyiqi.netstateproc.model.rest.req.LoginReq; +import com.wuyiqi.netstateproc.model.rest.resp.Resp; +import com.wuyiqi.netstateproc.service.UserService; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@AllArgsConstructor +public class UserController { + + private final UserService userService; + @PostMapping("/login") + public Resp login(@RequestBody LoginReq req) { + return null; + } + + @GetMapping("/test") + public Resp test() { + return Resp.success(userService.findByUsername("admin")); + } + +} diff --git a/src/main/java/com/wuyiqi/netstateproc/model/eneity/User.java b/src/main/java/com/wuyiqi/netstateproc/model/eneity/User.java new file mode 100644 index 0000000..ae98b42 --- /dev/null +++ b/src/main/java/com/wuyiqi/netstateproc/model/eneity/User.java @@ -0,0 +1,18 @@ +package com.wuyiqi.netstateproc.model.eneity; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Data; + +@Data +@Entity +public class User { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String password; + private String username; +} diff --git a/src/main/java/com/wuyiqi/netstateproc/model/rest/req/LoginReq.java b/src/main/java/com/wuyiqi/netstateproc/model/rest/req/LoginReq.java new file mode 100644 index 0000000..22347f7 --- /dev/null +++ b/src/main/java/com/wuyiqi/netstateproc/model/rest/req/LoginReq.java @@ -0,0 +1,9 @@ +package com.wuyiqi.netstateproc.model.rest.req; + +import lombok.Data; + +@Data +public class LoginReq { + private String username; + private String password; +} diff --git a/src/main/java/com/wuyiqi/netstateproc/model/rest/resp/Resp.java b/src/main/java/com/wuyiqi/netstateproc/model/rest/resp/Resp.java new file mode 100644 index 0000000..5b278a2 --- /dev/null +++ b/src/main/java/com/wuyiqi/netstateproc/model/rest/resp/Resp.java @@ -0,0 +1,20 @@ +package com.wuyiqi.netstateproc.model.rest.resp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.experimental.Accessors; +import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; + +@Data +@Accessors(chain = true) +@AllArgsConstructor +public class Resp { + private Integer code; + private String message; + private T data; + + public static Resp success(T data) { + return new Resp<>(HttpStatus.OK.value(), "success", data); + } +} diff --git a/src/main/java/com/wuyiqi/netstateproc/respository/UserRepo.java b/src/main/java/com/wuyiqi/netstateproc/respository/UserRepo.java new file mode 100644 index 0000000..02b588d --- /dev/null +++ b/src/main/java/com/wuyiqi/netstateproc/respository/UserRepo.java @@ -0,0 +1,10 @@ +package com.wuyiqi.netstateproc.respository; + +import com.wuyiqi.netstateproc.model.eneity.User; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +//@Repository +public interface UserRepo extends JpaRepository { + User findByUsername(String username); +} diff --git a/src/main/java/com/wuyiqi/netstateproc/service/UserService.java b/src/main/java/com/wuyiqi/netstateproc/service/UserService.java new file mode 100644 index 0000000..640cc7c --- /dev/null +++ b/src/main/java/com/wuyiqi/netstateproc/service/UserService.java @@ -0,0 +1,19 @@ +package com.wuyiqi.netstateproc.service; + +import com.wuyiqi.netstateproc.model.eneity.User; +import com.wuyiqi.netstateproc.respository.UserRepo; +import lombok.AllArgsConstructor; +import org.springframework.data.domain.Example; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +public class UserService { + + private final UserRepo userRepo; + + public User findByUsername(String username) { + return userRepo.findByUsername(username); + } + +}