提交 17880927 authored 作者: 马晨俊's avatar 马晨俊

mcj:新增请求头允许sessionId,与lj服务关联权限

上级 f3020cf7
package com.zjty.inspect.aop;
import java.lang.annotation.*;
import java.util.List;
/**
* @author mcj
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AuthAnnotation {
String[] code();
}
package com.zjty.inspect.aop;
import com.zjty.inspect.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* @author Mcj
* @date 2020-04-02 13:49
*/
@Aspect
@Slf4j
@Component
public class AuthIntercept {
private User user;
public void setUser(User user) {
this.user = user;
}
@Pointcut("@annotation(com.zjty.inspect.aop.AuthAnnotation)")
public void doPointCut() {
}
@Around("doPointCut()")
public Object aroundMethod(ProceedingJoinPoint joinPoint) throws Throwable {
AuthAnnotation annotation = ((MethodSignature)joinPoint.getSignature()).getMethod().getAnnotation(AuthAnnotation.class);
//注解配置权限code
String[] methodAuthCodes = annotation.code();
//用户拥有权限code
List<String> authorityCode = user.getAuthorityCode();
int i =0;
for (String methodAuthCode : methodAuthCodes) {
if(authorityCode.contains(methodAuthCode)){
i++;
}
}
if(i==0){
return ResponseEntity.status(403).build();
}
Object proceed = joinPoint.proceed();
log.info("PersonAspect2 ==> before method : {}", joinPoint.getSignature().getName());
log.info("注解的类型名称为{}",joinPoint.getSignature().getDeclaringTypeName());
log.info("方法修饰符个数为{}",joinPoint.getSignature().getModifiers());
log.info("方法名称为{}",joinPoint.getSignature().getName());
log.info("方法参数{}",joinPoint.getArgs());
return proceed;
}
}
package com.zjty.inspect.config;
import com.zjty.inspect.aop.AuthIntercept;
import com.zjty.inspect.entity.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author Mcj
* @date 2020-04-02 14:42
*/
@Configuration
public class LoginInterceptor implements HandlerInterceptor {
@Autowired
private RestTemplate restTemplate;
@Autowired
private AuthIntercept authIntercept;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) {
String sessionId = request.getHeader("sessionId");
String url = "http://120.55.57.35:12345/user/getLogin/"+sessionId;
ServerResponse user = restTemplate.getForObject(url, ServerResponse.class);
if(user==null){
//不符合条件的给出提示信息,并转发到登录页面
request.setAttribute("msg", "您还没有登录,请先登录!");
response.setStatus(403);
return false;
}
authIntercept.setUser(user.getData());
return true;
}
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
package com.zjty.inspect.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MvcConfig {
public class MvcConfig extends WebMvcConfigurationSupport {
@Autowired
private LoginInterceptor loginInterceptor;
public WebMvcConfigurer webMvcConfigurer(){
return new WebMvcConfigurer() {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/freemaker/**").addResourceLocations("file:/opt/inspect/freemaker/");
}
};
protected void addInterceptors(InterceptorRegistry registry) {
// 多个拦截器组成一个拦截器链
// addPathPatterns 用于添加拦截规则,/**表示拦截所有请求
// excludePathPatterns 用户排除拦截
registry.addInterceptor(loginInterceptor).addPathPatterns("/**");
super.addInterceptors(registry);
}
}
......@@ -123,13 +123,6 @@ public class InspectController {
return ResponseEntity.ok(inspect);
}
@PostMapping("/frontend")
@ApiOperation("git下载代码进行评估")
public ResponseEntity inspect(MultipartFile file) throws IOException {
return ResponseEntity.ok(200);
}
@PostMapping("/rapidAssessment")
public ResponseEntity rapidAssessment(@RequestBody Reform reform) throws IOException {
//输入参数
......@@ -178,7 +171,6 @@ public class InspectController {
}
}
}
System.out.println("content:" + content);
InspectParameter inspectParameter = new InspectParameter();
inspectParameter.setContent(content);
......@@ -223,14 +215,7 @@ public class InspectController {
马晨俊运算结束
*/
System.out.println(JSON.toJSONString(inspect));
// if(reform.getMode()==1 && inspect.getLanguage()!=1){
// Evaluation evaluation1=new Evaluation();
// evaluation1.setInEva(in);
// evaluation1.setOutEva("500");
// evaluation1.setUsername(reform.getUsername());
// evaluationService.save(evaluation1);
// return ResponseEntity.ok(500);
// }
/*
将马晨俊的数据放入输出的表单
*/
......@@ -266,10 +251,6 @@ public class InspectController {
assessmentReport.setOrgName(inspect.getFileName());
//评估时间
assessmentReport.setTime(inspect.getCreateDate());
//适配预算
// assessmentReport.setBudget(inspect.getBudgets().getBudget().get(0).getFund());
//原系统规模,马晨俊没放进去
//技术详情,马晨俊的警告点,同时统计技术的数量
//样式调整
int css = 0;
//API数量
......@@ -352,33 +333,6 @@ public class InspectController {
difficultyAssessment.setBrowserDifficulty(browserDifficulty);
//中间件难度
MiddlewareDifficulty middlewareDifficulty = new MiddlewareDifficulty();
//所有的依赖
// List<PomDependency> dependencies = new ArrayList<>();
// List<ProjectPom> depTreeList = inspect.getDependencyVo().getDepTreeList();
// for (ProjectPom projectPom : depTreeList) {
// dependencies.addAll(projectPom.getDependencies());
// }
// HashMap<String,Integer> num = new HashMap<>();
// for (PomDependency pomDependency:dependencies) {
// String groupId = pomDependency.getGroupId();
// Integer integer = num.get(groupId);
// if(integer == null){
// num.put(groupId,1);
// }else{
// integer = integer+1;
// num.put(groupId,integer);
// }
// }
// System.out.println("所有依赖:"+JSON.toJSONString(num));
// Set<String> strings = num.keySet();
// List<DependOnNum> dependOnNums = new ArrayList<>();
// for (String s:strings) {
// DependOnNum dependOnNum = new DependOnNum();
// dependOnNum.setName(s);
// dependOnNum.setNum(num.get(s));
// dependOnNums.add(dependOnNum);
// }
middlewareDifficulty.setNumber(number);
middlewareDifficulty.setDependOnNum(inspect.getSupportSize());
Middleware middleware = reform.getMiddleware();
......@@ -407,20 +361,16 @@ public class InspectController {
System.out.println("programDifficulty+:" + JSON.toJSONString(programDifficulty));
assessmentReport.setDifficultyAssessment(difficultyAssessment);
WorkLoadUtil workLoadUtil = new WorkLoadUtil();
//造价估算
//r:人工费
RestTemplate restTemplate = new RestTemplate();
//restTemplate.exchange("localhost:8079/config", HttpMethod.GET,new HttpEntity<>())
//计算f
Budget budget = inspect.getBudgets().getBudget().get(0);
double f = budget.getProportion() * budget.getSysFund() * budget.getMoneyRate() * budget.getCoefficient();
System.out.println("F:" + f);
workLoadUtil.result(reform, assessmentReport, f, 1.5);
//输出参数
String out = JSON.toJSONString(assessmentReport);
evaluation.setOutEva(out);
evaluation.setUsername(reform.getUsername());
evaluation.setProjectName(reform.getProjectName());
......
package com.zjty.inspect.controller;
import com.zjty.inspect.aop.AuthAnnotation;
import com.zjty.inspect.entity.*;
import com.zjty.inspect.service.RuleService;
import io.swagger.annotations.Api;
......@@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
......@@ -34,6 +36,7 @@ public class RuleController {
*/
@PostMapping
@ApiOperation("新增规则")
@AuthAnnotation(code = {"1200","1400"})
public ResponseEntity rule(@RequestBody RuleQo ruleQo){
ruleService.addRule(ruleQo);
return ResponseEntity.ok(200);
......@@ -45,9 +48,9 @@ public class RuleController {
*/
@PostMapping(value = "/update")
@ApiOperation("修改规则")
@AuthAnnotation(code = {"1200","1400"})
public ResponseEntity update(@RequestBody RuleQo ruleQo){
ruleService.upRule(ruleQo);
System.out.println("");
return ResponseEntity.ok(200);
}
/**
......@@ -57,14 +60,17 @@ public class RuleController {
*/
@ApiOperation("根据数据封装删除规则")
@DeleteMapping
@AuthAnnotation(code = {"1200","1400"})
public ResponseEntity deleteByQo(@RequestBody RuleQo ruleQo){
ruleService.deleteRule(ruleQo);
return ResponseEntity.ok(200);
}
@ApiOperation("根据name查询规则")
@GetMapping(value = "/{name}")
@AuthAnnotation(code = {"1200","1400"})
public ResponseEntity getName(@PathVariable String name) {
return ResponseEntity.ok(ruleService.findByName(name));
List<RuleCollection> byName = ruleService.findByName(name);
return ResponseEntity.ok(byName);
}
/**
* 查询所有规则
......@@ -73,7 +79,8 @@ public class RuleController {
@ApiOperation("查询所有规则")
@GetMapping
public ResponseEntity getRules(){
return ResponseEntity.ok(ruleService.findAll());
List<RuleCollection> all = ruleService.findAll();
return ResponseEntity.ok(all);
}
/**
......
package com.zjty.inspect.controller;
import com.zjty.inspect.aop.AuthAnnotation;
import com.zjty.inspect.entity.*;
import com.zjty.inspect.service.TechnologyService;
import io.swagger.annotations.Api;
......@@ -57,12 +58,7 @@ public class TechnologyController {
* 添加关键技术
* @return List
*/
@PostMapping
@ApiOperation("添加关键技术")
public ResponseEntity addTechnologies(@RequestBody TechnologyQo technologyQo){
technologyService.addAdvice(technologyQo);
return ResponseEntity.ok(200);
}
@AuthAnnotation(code = "1100")
@PostMapping("/add")
@ApiOperation("新添加关键技术")
public ResponseEntity addTechnologies(@RequestBody Technology technology){
......@@ -70,6 +66,7 @@ public class TechnologyController {
return ResponseEntity.ok(200);
}
@AuthAnnotation(code = "1100")
@PostMapping(value = "/{id}")
@ApiOperation("修改关键技术")
public ResponseEntity update(@RequestBody Technology technology,@PathVariable String id){
......@@ -95,37 +92,4 @@ public class TechnologyController {
return ResponseEntity.ok(new PageResult<Technology>(pageList.getTotalElements(), pageList.getContent()) );
}
@GetMapping("/getReform")
public ResponseEntity getReform(){
Reform reform = new Reform();
return ResponseEntity.ok(reform);
}
@GetMapping("/getp")
public ResponseEntity getp(){
AssessmentReport assessmentReport = new AssessmentReport();
TechnologyList technologyList = assessmentReport.getTechnologyList();
List<TechnologyReport> technologyReports = technologyList.getTechnologyReports();
TechnologyReport technologyReport = new TechnologyReport();
List<TechnologyContent> technologyContents = technologyReport.getTechnologyContents();
TechnologyContent technologyContent = new TechnologyContent();
technologyContents.add(technologyContent);
technologyContents.add(technologyContent);
technologyReport.setTechnologyContents(technologyContents);
technologyReports.add(technologyReport);
technologyList.setTechnologyReports(technologyReports);
DependOnNum dependOnNum = new DependOnNum();
List<DependOnNum> dependOnNums = new ArrayList<>();
dependOnNums.add(dependOnNum);
DifficultyAssessment difficultyAssessment = assessmentReport.getDifficultyAssessment();
difficultyAssessment.getDatabaseDifficulty().setDependOnNum(dependOnNums);
difficultyAssessment.getMiddlewareDifficulty().setDependOnNum(10);
difficultyAssessment.getProgramDifficulty().setDependOnNum(dependOnNums);
return ResponseEntity.ok(assessmentReport);
}
}
package com.zjty.inspect.entity;
import lombok.Data;
import java.io.Serializable;
/**
* @author Mcj
* @date 2020-04-03 09:41
*/
@Data
public class ServerResponse implements Serializable {
private User data;
}
package com.zjty.inspect.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.List;
/**
* 用户
* @author mcj
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
@ApiModelProperty("主键")
private Integer id;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("性别")
private Integer sex;
@ApiModelProperty("用户名")
private String userName;
@ApiModelProperty("密码")
private String password;
@ApiModelProperty("角色id")
private Integer roleId;
@ApiModelProperty("角色名称")
private String roleName;
@ApiModelProperty("联系方式")
private String number;
@ApiModelProperty("用户类型 1:后台,2:前台")
private Integer type;
@ApiModelProperty("本次登录的sessionId")
private String sessionId;
@ApiModelProperty("用户权限集合")
private List<String> authorityCode;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论