增加一个简单的公告功能、获取debug admin token

增加配置:
announcement=classpath:announcement.txt
user.admin.debug.passwd=123456
This commit is contained in:
Luoye 2020-10-22 17:27:54 +08:00
parent 2f76bcb973
commit fc9b23122f
4 changed files with 78 additions and 0 deletions

View File

@ -1,15 +1,25 @@
package io.qyi.e5.controller.admin; package io.qyi.e5.controller.admin;
import io.qyi.e5.config.security.UsernamePasswordAuthenticationToken;
import io.qyi.e5.outlook.service.IOutlookService; import io.qyi.e5.outlook.service.IOutlookService;
import io.qyi.e5.service.task.ITask; import io.qyi.e5.service.task.ITask;
import io.qyi.e5.util.EncryptUtil;
import io.qyi.e5.util.StringUtil;
import io.qyi.e5.util.redis.RedisUtil; import io.qyi.e5.util.redis.RedisUtil;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
/** /**
* @program: 此类里大多都是测试 * @program: 此类里大多都是测试
* @description: * @description:
@ -34,6 +44,15 @@ public class AdminController {
@Value("user.admin.githubId") @Value("user.admin.githubId")
String adminGithubId; String adminGithubId;
@Value("${user.admin.debug.passwd}")
String userAdminDebugPasswd;
@Value("${redis.user.token}")
String token_;
@Value("${user.token.expire}")
private int tokenExpire;
/** /**
* 测试队列 * 测试队列
* @Author: 落叶随风 * @Author: 落叶随风
@ -73,4 +92,40 @@ public class AdminController {
public String test() { public String test() {
return "ok"; return "ok";
} }
@RequestMapping("setAnnouncement")
public String setAnnouncement(String text) throws IOException {
File file = ResourceUtils.getFile("classpath:announcement.txt");
FileWriter writer = new FileWriter(file);
writer.write(text);
writer.close();
return "ok";
}
@RequestMapping("getDebugAdminToken")
public String getDebugAdminToken(String passwd) {
if (userAdminDebugPasswd.equals(passwd)) {
String token = EncryptUtil.getInstance().SHA1Hex(UUID.randomUUID().toString());
/*配置角色,这里只是简单的配置,实际上需要从数据库中读取角色*/
List<String> list_Authority = new ArrayList<>();
list_Authority.add("user");
list_Authority.add("admin");
String[] Authority = list_Authority.toArray(new String[list_Authority.size()]);
/*写token信息到redis*/
Map<String, Object> userInfo_redis = new HashMap<>();
userInfo_redis.put("github_name", "admin");
userInfo_redis.put("github_id", 0000);
userInfo_redis.put("avatar_url", "https://www.baidu.com");
userInfo_redis.put("authority", list_Authority);
redisUtil.hmset(token_ + token, userInfo_redis, tokenExpire);
// 创建一个已认证的token
// UsernamePasswordAuthenticationToken authenticationToken1 = new UsernamePasswordAuthenticationToken(userInfo_redis.get("github_name").toString(),
// userInfo_redis.get("github_name").toString(), (int)userInfo_redis.get("github_name"), token, "user", AuthorityUtils.createAuthorityList(Authority));
return token;
}
return "la la la";
}
} }

View File

@ -6,13 +6,17 @@ import io.qyi.e5.github.service.IGithubService;
import io.qyi.e5.outlook.service.IOutlookService; import io.qyi.e5.outlook.service.IOutlookService;
import io.qyi.e5.outlook_log.service.IOutlookLogService; import io.qyi.e5.outlook_log.service.IOutlookLogService;
import io.qyi.e5.util.ResultUtil; import io.qyi.e5.util.ResultUtil;
import io.qyi.e5.util.StringUtil;
import io.qyi.e5.util.redis.RedisUtil; import io.qyi.e5.util.redis.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -72,4 +76,10 @@ public class WebController {
} }
@RequestMapping("getAnnouncement")
public String getAnnouncement() throws IOException {
String s = StringUtil.readTxt(ResourceUtils.getFile("classpath:announcement.txt"));
return s;
}
} }

View File

@ -1,5 +1,6 @@
package io.qyi.e5.util; package io.qyi.e5.util;
import java.io.*;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -24,4 +25,15 @@ public class StringUtil {
} }
return map; return map;
} }
public static String readTxt(File file) throws IOException {
String s = "";
InputStreamReader in = new InputStreamReader(new FileInputStream(file),"UTF-8");
BufferedReader br = new BufferedReader(in);
StringBuffer content = new StringBuffer();
while ((s=br.readLine())!=null){
content = content.append(s);
}
return content.toString();
}
} }

View File

@ -0,0 +1 @@
点击小猫咪头像进行登录。