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);
+ }
+
+}