Commit 2d126f63 authored by shulidong's avatar shulidong

适配用户权限

parent 9fdc74a3
......@@ -35,6 +35,7 @@ target/
*.zip
*.tar
*.tar.gz
*.class
### logs ####
/logs/
......
This diff is collapsed.
package cn.wise.sc.energy.power.plant.business.constant;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author neo.shu
* @since 2020/10/6 09:43
......@@ -17,4 +19,8 @@ public class Constance {
public static final String RETURN = "\n";
public static final String SPLIT = ":";
//二叉树线程参数map
public static ConcurrentHashMap<String, String> TASKPARAMMAP = new ConcurrentHashMap<>();
}
......@@ -10,6 +10,7 @@ import cn.wise.sc.energy.power.plant.business.jna.C2TreeAnalysis;
import cn.wise.sc.energy.power.plant.business.opentsdb.OpentsdbOkHttpClient;
import cn.wise.sc.energy.power.plant.business.repository.AutoInspectionRepository;
import cn.wise.sc.energy.power.plant.business.repository.BtreeInfoConfigRepository;
import cn.wise.sc.energy.power.plant.business.task.C2TreeAnalysisTask;
import cn.wise.sc.energy.power.plant.business.utils.BeanUtilsExt;
import cn.wise.sc.energy.power.plant.business.utils.Utils;
import cn.wise.sc.energy.power.plant.business.utils.poi.DocxService;
......@@ -58,6 +59,9 @@ public class BtreeInspectionController {
@Autowired
AutoInspectionRepository autoInspectionRepository;
@Autowired
C2TreeAnalysisTask c2TreeAnalysisTask;
@ApiOperation("获取二叉树列表")
@PostMapping("/configList")
public BaseResponse<List<BtreeInfoConfig>> interaction() {
......@@ -209,8 +213,10 @@ public class BtreeInspectionController {
//每次新建任务都保存一下
redissonClient.getBucket("btreetask:" + Utils.getTaskPrefix()).set(taskId);
//jna发起任务。
//String taskjson = "{\"taskId\":\"" + "dfdf" + "\",\"taskTyped\":0,\"Data\":[" + "1602747401000" + "," + "1602747401000" + "]}";
String taskjson = "{\"taskId\":\"" + taskId + "\",\"taskTyped\":0,\"Data\":[" + lastTime1 + "," + lastTime2 + "]}";
log.error(taskjson);
//log.error(taskjson);
//Constance.TASKPARAMMAP.put(Utils.getTaskPrefix(), taskjson);
try {
new Thread(() -> {
C2TreeAnalysis.INSTANCE.C2TreeDiagnose(taskjson);
......
package cn.wise.sc.energy.power.plant.business.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.wise.sc.energy.power.plant.business.domain.Role;
import cn.wise.sc.energy.power.plant.business.repository.RoleRepository;
import cn.wise.sc.energy.power.plant.business.utils.BeanUtilsExt;
import cn.wise.sc.energy.power.plant.common.core.bean.BaseResponse;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author neo.shu
* @since 2020/10/16 17:53
*/
@CrossOrigin
@RestController
@RequestMapping("role/")
@Slf4j
public class RoleController {
@Autowired
RoleRepository roleRepository;
@ApiOperation("获取角色列表")
@PostMapping("/list")
public BaseResponse<List<Role>> interaction() {
//不能新增超级管理员
List<Role> list = roleRepository.findAllByRoleIdNotIn(CollectionUtil.newArrayList(1));
return BaseResponse.okData(list);
}
@ApiOperation("创建或更新角色")
@PostMapping("/newOrUpdate")
@Transactional(propagation = Propagation.REQUIRED)
public BaseResponse<Boolean> add(@RequestBody Role info) {
Role role;
if (info.getRoleId() == null) {
info.setRoleId(null);
role = roleRepository.save(info);
} else {
role = roleRepository.getOne(info.getRoleId());
BeanUtils.copyProperties(info, role, BeanUtilsExt.getNullPropertyNames(info));
role = roleRepository.save(role);
}
if (role.getId() != null) {
return BaseResponse.okData(true);
} else {
return BaseResponse.okData(false);
}
}
}
package cn.wise.sc.energy.power.plant.business.domain;
import lombok.Data;
import org.springframework.context.annotation.Lazy;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
/**
* @description:
* @author: neo.shu
* @create: 2020-10-16 10:00
**/
@Data
@Entity
@Table(name = "role")
@Lazy(false)
public class Role extends AbstractEntity<Integer> implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer roleId;
private String permission;
private String name;
@Override
public Integer getId() {
return null;
}
}
......@@ -40,6 +40,10 @@ public class UserInfo extends AbstractEntity<String> implements UserDetails {
private String phone;
private String name;
private String sex;
@Transient
private String permission;
@Transient
private String rolename;
@Transient
private Collection<? extends GrantedAuthority> authorities;
......
package cn.wise.sc.energy.power.plant.business.repository;
import cn.wise.sc.energy.power.plant.business.domain.Role;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @description: 阈值更新记录仓储
* @author: neo.shu
* @create: 2020-10-16 14:41
**/
@Repository
public interface RoleRepository extends JpaRepository<Role, Integer>, JpaSpecificationExecutor<Role> {
List<Role> findAllByRoleIdNotIn(List<Integer> list);
}
\ No newline at end of file
......@@ -88,8 +88,7 @@ public class JWTAuthenticationFilter extends
cacheToken.set(token,24, TimeUnit.HOURS);
response.addHeader(AUTHORIZATION_HEADER, TOKEN_PREFIX + token);
try {
String role = ((UserInfo) authResult.getPrincipal()).getRole() + "";
String rts = JSON.toJSONString(BaseResponse.okData(role));
String rts = JSON.toJSONString(BaseResponse.okData(((UserInfo) authResult.getPrincipal())));
response.setHeader("Content-type", "text/html;charset=UTF-8");
response.setCharacterEncoding("utf-8");
response.getWriter().write(rts);
......
package cn.wise.sc.energy.power.plant.business.security;
import cn.wise.sc.energy.power.plant.business.domain.Role;
import cn.wise.sc.energy.power.plant.business.domain.UserInfo;
import cn.wise.sc.energy.power.plant.business.repository.RoleRepository;
import cn.wise.sc.energy.power.plant.business.service.IUserInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
......@@ -21,6 +23,8 @@ public class JwtUserDetailsService implements UserDetailsService {
final
IUserInfoService iUserInfoService;
@Autowired
RoleRepository roleRepository;
public JwtUserDetailsService(IUserInfoService iUserInfoService) {
this.iUserInfoService = iUserInfoService;
......@@ -51,7 +55,11 @@ public class JwtUserDetailsService implements UserDetailsService {
if (!userInfo.getPlantid().equals(split[1])) {
throw new UsernameNotFoundException("user is not belong to this plant!");
}
//获取角色信息
Role role = roleRepository.getOne(userInfo.getRole());
((UserInfo) userDetails).setUsername(username);
((UserInfo) userDetails).setRolename(role.getName());
((UserInfo) userDetails).setPermission(role.getPermission());
return userDetails;
}
}
package cn.wise.sc.energy.power.plant.business.task;
import cn.wise.sc.energy.power.plant.business.constant.Constance;
import cn.wise.sc.energy.power.plant.business.jna.C2TreeAnalysis;
import cn.wise.sc.energy.power.plant.business.task.schedule.ScheduleTask;
import cn.wise.sc.energy.power.plant.business.utils.Utils;
import org.springframework.stereotype.Service;
import java.util.UUID;
/**
* @author neo.shu
* @since 2020/10/15 18:05
*/
@Service
public class C2TreeAnalysisTask extends ScheduleTask {
public C2TreeAnalysisTask() {
super(UUID.randomUUID().toString());
}
@Override
public void run() {
try {
C2TreeAnalysis.INSTANCE.C2TreeDiagnose(Constance.TASKPARAMMAP.get(Utils.getTaskPrefix()));
Thread.sleep(10000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
......@@ -100,6 +100,9 @@ spring:
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
properties:
hibernate:
enable_lazy_load_no_trans: true
opentsdb:
baseUrl: http://39.105.86.33:8182
server:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment