From 482c178f89c516440628acb70b2f050747f00449 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期五, 01 十二月 2023 08:09:48 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes
---
springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 103 insertions(+), 0 deletions(-)
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java
new file mode 100644
index 0000000..76d6d6a
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java
@@ -0,0 +1,103 @@
+package com.example.springboot.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.example.springboot.security.util.JwtUtil;
+import com.example.springboot.security.util.SecurityUtil;
+import com.example.springboot.entity.User;
+import com.example.springboot.entity.vo.Result;
+import com.example.springboot.entity.vo.UserVo;
+import com.example.springboot.security.constant.SystemConstant;
+import com.example.springboot.service.UserService;
+import com.example.springboot.util.ValidatorUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authc.DisabledAccountException;
+import org.apache.shiro.authc.ExcessiveAttemptsException;
+import org.apache.shiro.authc.ExpiredCredentialsException;
+import org.apache.shiro.authc.IncorrectCredentialsException;
+import org.apache.shiro.authc.LockedAccountException;
+import org.apache.shiro.authc.UnknownAccountException;
+import org.apache.shiro.authc.UsernamePasswordToken;
+import org.apache.shiro.authz.UnauthorizedException;
+import org.apache.shiro.crypto.hash.SimpleHash;
+import org.apache.shiro.util.ByteSource;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+
+@RestController
+
+@Slf4j
+@Api(tags = "鐧诲綍鍜屾敞鍐�")
+public class DefaultController {
+ @Autowired
+ private UserService userService;
+
+ @ApiOperation(value = "娉ㄥ唽鐢ㄦ埛")
+ @PostMapping("/register")
+ public Result register(@RequestBody User user) {
+ // 鏍¢獙鍙傛暟
+ if (StringUtils.isNotEmpty(user.getEmail())) {
+ ValidatorUtil.validateEntity(user);
+ }
+
+ Integer integer = userService.countByUsername(user.getUsername());
+ if (integer > 0) return Result.fail("鐢ㄦ埛鍚嶅凡缁忓瓨鍦�");
+ // 閫氳繃shiro榛樿鐨勫姞瀵嗗伐鍏风被涓烘敞鍐岀敤鎴风殑瀵嗙爜杩涜鍔犲瘑
+ Object salt = ByteSource.Util.bytes(SystemConstant.JWT_SECRET_KEY);
+ String md5 = new SimpleHash("MD5", user.getPassword(), salt, 1024).toHex();
+ user.setPassword(md5);
+ userService.saveOrUpdate(user);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鐧诲綍")
+
+ @PostMapping("/login")
+ public Result login(@RequestBody UserVo userVO) {
+ ValidatorUtil.validateEntity(userVO);
+ if (!SecurityUtils.getSubject().isAuthenticated()) {
+ UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userVO.getUsername(), userVO.getPassword(), true);
+ try {
+ // shiro楠岃瘉鐢ㄦ埛鍚嶅瘑鐮�
+ SecurityUtils.getSubject().login(usernamePasswordToken);
+ // 鐢熸垚token
+ String token = JwtUtil.createToken(userVO.getUsername(), false);
+ // 灏嗙敤鎴锋埛鍚嶅拰token杩斿洖
+ HashMap<String, String> map = new HashMap<>();
+ map.put("username", userVO.getUsername());
+ map.put("Authorization", token);
+ map.put("role_id", SecurityUtil.getCurrentUser().getRoleId().toString());
+ return Result.success(map);
+ } catch (IncorrectCredentialsException e) {
+ return Result.fail("鐧诲綍瀵嗙爜閿欒");
+ } catch (ExcessiveAttemptsException e) {
+ return Result.fail("鐧诲綍澶辫触娆℃暟杩囧");
+ } catch (LockedAccountException e) {
+ return Result.fail("甯愬彿宸茶閿佸畾");
+ } catch (DisabledAccountException e) {
+ return Result.fail("甯愬彿宸茶绂佺敤");
+ } catch (ExpiredCredentialsException e) {
+ return Result.fail("璇烽噸鏂扮櫥褰�");
+
+ } catch (UnknownAccountException e) {
+ return Result.fail("甯愬彿涓嶅瓨鍦�");
+ } catch (UnauthorizedException e) {
+ return Result.fail("鎮ㄦ病鏈夊緱鍒扮浉搴旂殑鎺堟潈");
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.fail("鐧诲綍澶辫触锛侊紒锛�");
+ }
+ }
+ return Result.fail("浣犲凡缁忕櫥褰曚簡");
+ }
+
+ @ApiOperation(value = "娉ㄥ唽鏃舵牎楠岀敤鎴峰悕鏄惁瀛樺湪")
+ @GetMapping("/countUsername")
+ public Result countUsername(String username) {
+ return Result.success(userService.countByUsername(username));
+ }
+}
--
Gitblit v1.8.0