Skip to content

Commit 4a4b2b0

Browse files
committed
持续更新中
1 parent 1282dab commit 4a4b2b0

File tree

3 files changed

+40
-11
lines changed

3 files changed

+40
-11
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.lmxdawn.admin.annotation;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
/**
9+
* 后台登录授权/权限验证的注解
10+
*/
11+
//此注解只能修饰方法
12+
@Target(ElementType.METHOD)
13+
//当前注解如何去保持
14+
@Retention(RetentionPolicy.RUNTIME)
15+
public @interface AdminAuthRuleAnnotation {
16+
String value();
17+
}

admin-api/src/main/java/com/lmxdawn/admin/aspect/AdminAuthorizeAspect.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
package com.lmxdawn.admin.aspect;
22

3+
import com.lmxdawn.admin.annotation.AdminAuthRuleAnnotation;
34
import com.lmxdawn.admin.enums.ResultEnum;
45
import com.lmxdawn.admin.exception.JsonException;
56
import com.lmxdawn.admin.utils.JwtUtil;
67
import io.jsonwebtoken.Claims;
78
import lombok.extern.slf4j.Slf4j;
9+
import org.aspectj.lang.JoinPoint;
810
import org.aspectj.lang.annotation.Aspect;
911
import org.aspectj.lang.annotation.Before;
1012
import org.aspectj.lang.annotation.Pointcut;
13+
import org.aspectj.lang.reflect.MethodSignature;
1114
import org.springframework.stereotype.Component;
12-
import org.springframework.util.StringUtils;
1315
import org.springframework.web.context.request.RequestContextHolder;
1416
import org.springframework.web.context.request.ServletRequestAttributes;
1517

16-
import javax.servlet.http.Cookie;
1718
import javax.servlet.http.HttpServletRequest;
19+
import java.lang.reflect.Method;
1820

1921
/**
2022
* 登录验证 AOP
@@ -23,12 +25,19 @@
2325
@Component
2426
@Slf4j
2527
public class AdminAuthorizeAspect {
26-
@Pointcut("execution(public * com.lmxdawn.admin.controller.*.Auth*.*(..))" +
27-
"&& !execution(public * com.lmxdawn.admin.controller.admin.AuthLoginController.index(..))")
28-
public void verify() {}
28+
@Pointcut("@annotation(com.lmxdawn.admin.annotation.AdminAuthRuleAnnotation)")
29+
public void adminAuthVerify() {}
30+
31+
@Before("adminAuthVerify()")
32+
public void doAdminAuthVerify(JoinPoint joinPoint) {
33+
34+
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
35+
//从切面中获取当前方法
36+
Method method = signature.getMethod();
37+
//得到了方,提取出他的注解
38+
AdminAuthRuleAnnotation action = method.getAnnotation(AdminAuthRuleAnnotation.class);
39+
System.out.println(action.value());
2940

30-
@Before("verify()")
31-
public void doVerify() {
3241
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
3342
if (attributes == null) {
3443
throw new JsonException(ResultEnum.NOT_NETWORK);

admin-api/src/main/java/com/lmxdawn/admin/controller/admin/AuthLoginController.java renamed to admin-api/src/main/java/com/lmxdawn/admin/controller/admin/auth/LoginController.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package com.lmxdawn.admin.controller.admin;
1+
package com.lmxdawn.admin.controller.admin.auth;
22

3+
import com.lmxdawn.admin.annotation.AdminAuthRuleAnnotation;
34
import com.lmxdawn.admin.entity.AuthAdmin;
45
import com.lmxdawn.admin.enums.ResultEnum;
56
import com.lmxdawn.admin.form.LoginForm;
@@ -18,6 +19,7 @@
1819

1920
import javax.servlet.http.HttpServletRequest;
2021
import javax.validation.Valid;
22+
import java.util.Arrays;
2123
import java.util.HashMap;
2224
import java.util.Map;
2325

@@ -27,7 +29,7 @@
2729
@RestController
2830
@RequestMapping("/admin/auth/login")
2931
@Slf4j
30-
public class AuthLoginController {
32+
public class LoginController {
3133

3234
@Autowired
3335
private AuthAdminService authAdminService;
@@ -68,11 +70,12 @@ public ResultVO index(@Valid LoginForm loginForm,
6870
* 获取登录用户信息
6971
* @return
7072
*/
73+
@AdminAuthRuleAnnotation("admin/auth/login/userInfo")
7174
@GetMapping("/userInfo")
72-
public ResultVO userInfo(HttpServletRequest request) {
75+
public ResultVO userInfo(String[] str, HttpServletRequest request) {
7376
String adminId = request.getHeader("X-Adminid");
7477
Long id = Long.valueOf(adminId);
75-
78+
System.out.println(Arrays.toString(str));
7679
AuthAdmin authAdmin = authAdminService.findById(id);
7780

7881

0 commit comments

Comments
 (0)