Browse Source

删除SimpleAuthorizationInterceptor,提交到magic-api-example

wangshuai 4 years ago
parent
commit
3691957621

+ 0 - 132
src/main/java/org/ssssssss/magicapi/auth/SimpleAuthorizationInterceptor.java

@@ -1,132 +0,0 @@
-package org.ssssssss.magicapi.auth;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-import org.ssssssss.magicapi.exception.MagicLoginException;
-import org.ssssssss.magicapi.interceptor.Authorization;
-import org.ssssssss.magicapi.interceptor.AuthorizationInterceptor;
-import org.ssssssss.magicapi.interceptor.MagicUser;
-
-import javax.servlet.http.HttpServletRequest;
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 自定义多用户名密码登录,以及权限控制
- * 使用方式在项目工程中@import 或者 @Bean注解使spring管理。
- * magic-api.ext.auth.enable=true #启用
- * #magic-api.ext.auth.users.用户名=123456  #配置用户信息
- * #magic-api.ext.auth.denyOptions.用户名=DELETE #配置用户禁用的权限 {@linkplain Authorization}
- * #magic-api.ext.auth.users.xx=password
- * #magic-api.ext.auth.denyOptions.xx=DELETE
- * @author 冰点
- * @date 2021-5-11 17:17:52
- */
-
-@Configuration
-@ConditionalOnProperty(prefix = "magic-api.ext.auth", name = "enable", havingValue = "true", matchIfMissing = false)
-@ConfigurationProperties(prefix = "magic-api.ext.auth")
-public class SimpleAuthorizationInterceptor implements AuthorizationInterceptor {
-    private static final Logger log = LoggerFactory.getLogger(SimpleAuthorizationInterceptor.class);
-    /**
-     * 加密因子
-     */
-    @Value("${magic-api.ext.auth.encryIndex:1}")
-    private int encryIndex;
-    /**
-     * 用户信息
-     */
-    private Map<String, String> users;
-    /**
-     * 用户权限
-     */
-    private Map<String, String> denyOptions;
-
-
-    public SimpleAuthorizationInterceptor() {
-        log.info("已启用多用户登录扩展,如需关闭请magic-api.ext.auth.enable=false");
-    }
-
-    /**
-     * 配置是否需要登录
-     */
-    @Override
-    public boolean requireLogin() {
-        return true;
-    }
-
-    /**
-     * 根据Token获取User
-     */
-    @Override
-    public MagicUser getUserByToken(String token) throws MagicLoginException {
-        String[] userInfo = getUserInfoByToken(token);
-        MagicUser magicUser = new MagicUser(userInfo[0], userInfo[0], getToken(userInfo[0], userInfo[1]));
-        if (users.containsKey(magicUser.getUsername()) && users.get(magicUser.getUsername()).equals(userInfo[1])) {
-            return magicUser;
-        }
-        throw new MagicLoginException("token无效");
-    }
-
-    @Override
-    public MagicUser login(String username, String password) throws MagicLoginException {
-        // 根据实际情况进行修改。。
-        if (users.containsKey(username) && users.get(username).equals(password)) {
-            return new MagicUser(username, username, getToken(username, password));
-        }
-        throw new MagicLoginException("用户名或密码不正确");
-    }
-
-    /**
-     * 验证是否有权限访问功能
-     */
-    @Override
-    public boolean allowVisit(MagicUser magicUser, HttpServletRequest request, Authorization authorization) {
-        String[] denyOption = denyOptions.get(magicUser.getUsername()).split(",");
-        List<String> list = Arrays.asList(denyOption);
-        return !list.contains(authorization.name());
-    }
-
-    public String getToken(String username, String password) throws MagicLoginException {
-        String token = null;
-        try {
-            byte[] b = (username + ";" + password).getBytes("utf-8");
-            for (int i = 0; i < b.length; i++) {
-                b[i] += encryIndex;
-            }
-            token = new String(b);
-            log.debug("本次登录token:[{}]", token);
-        } catch (UnsupportedEncodingException e) {
-            log.info("生成token失败,可能字符集不合法。[{}={}]",username,password);
-            throw new MagicLoginException("用户名或密码配置不合法");
-        }
-        return token;
-    }
-
-    public String[] getUserInfoByToken(String token) throws MagicLoginException {
-        try {
-            byte[] b = token.getBytes();
-            for (int i = 0; i < b.length; i++) {
-                b[i] -= encryIndex;
-            }
-            return new String(b).split(";");
-        } catch (Exception e) {
-            log.error("根据token:[{}]获取用户信息失败", token, e);
-            throw new MagicLoginException("用户名或密码不正确");
-        }
-    }
-
-    public void setUsers(Map<String, String> users) {
-        this.users = users;
-    }
-
-    public void setDenyOptions(Map<String, String> denyOptions) {
-        this.denyOptions = denyOptions;
-    }
-}