Pārlūkot izejas kodu

api模块提交
安全认证接口提交

wanger 5 mēneši atpakaļ
vecāks
revīzija
8dc9d8eb6c

+ 3 - 1
onemap-common/onemap-common-security/src/main/java/com/onemap/common/security/service/TokenService.java

@@ -60,7 +60,9 @@ public class TokenService
 
         // 接口返回信息
         Map<String, Object> rspMap = new HashMap<String, Object>();
-        rspMap.put("access_token", JwtUtils.createToken(claimsMap));
+        String tokenstr = JwtUtils.createToken(claimsMap);
+        rspMap.put("token", tokenstr);
+        rspMap.put("access_token", tokenstr);
         rspMap.put("expires_in", expireTime);
         return rspMap;
     }

+ 111 - 0
onemap-modules/onemap-api/pom.xml

@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>com.onemap</groupId>
+        <artifactId>onemap-modules</artifactId>
+        <version>3.6.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>onemap-modules-api</artifactId>
+
+    <description>
+        onemap-modules-api 公共接口
+    </description>
+    <dependencies>
+
+        <!-- SpringCloud Alibaba Nacos -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <!-- SpringCloud Alibaba Nacos Config -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+
+        <!-- SpringCloud Alibaba Sentinel -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+        </dependency>
+
+        <!-- SpringBoot Actuator -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <!-- Swagger UI -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>${swagger.fox.version}</version>
+        </dependency>
+
+        <!-- Apache Velocity -->
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+        </dependency>
+
+        <!-- Mysql Connector -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common DataSource -->
+        <dependency>
+            <groupId>com.onemap</groupId>
+            <artifactId>onemap-common-datasource</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common DataScope -->
+        <dependency>
+            <groupId>com.onemap</groupId>
+            <artifactId>onemap-common-datascope</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common Log -->
+        <dependency>
+            <groupId>com.onemap</groupId>
+            <artifactId>onemap-common-log</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common Swagger -->
+        <dependency>
+            <groupId>com.onemap</groupId>
+            <artifactId>onemap-common-swagger</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.ant</groupId>
+            <artifactId>ant</artifactId>
+            <version>1.10.5</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.6.2</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 23 - 0
onemap-modules/onemap-api/src/main/java/com/onemap/api/OneMapApiApplication.java

@@ -0,0 +1,23 @@
+package com.onemap.api;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import com.onemap.common.security.annotation.EnableCustomConfig;
+import com.onemap.common.security.annotation.EnableRyFeignClients;
+import com.onemap.common.swagger.annotation.EnableCustomSwagger2;
+
+/**
+ * 公共接口
+ *
+ * @author onemap
+ */
+@EnableCustomConfig
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+public class OneMapApiApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(OneMapApiApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  公共接口模块启动成功   ლ(´ڡ`ლ)゙");
+    }
+}

+ 34 - 0
onemap-modules/onemap-api/src/main/java/com/onemap/api/controller/ZhxzController.java

@@ -0,0 +1,34 @@
+package com.onemap.api.controller;
+
+
+import com.onemap.api.domain.AuthorizeDto;
+import com.onemap.api.service.ZhxzService;
+import com.onemap.common.core.utils.StringUtils;
+import com.onemap.common.core.web.domain.RequestResult;
+import com.onemap.common.security.service.TokenService;
+import org.springframework.beans.factory.annotation.Autowired;
+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 com.onemap.common.core.web.controller.BaseController;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 智慧选址接口
+ *
+ * @author onemap
+ */
+@RequestMapping("/open/zhxz")
+@RestController
+public class ZhxzController extends BaseController {
+    @Autowired
+    private ZhxzService zhxzService;
+
+    @PostMapping("/authorize")
+    public RequestResult authorize(@RequestBody AuthorizeDto authorizeDto, HttpServletRequest request) {
+        return zhxzService.authorize(authorizeDto, request);
+    }
+
+}

+ 13 - 0
onemap-modules/onemap-api/src/main/java/com/onemap/api/domain/AuthorizeDto.java

@@ -0,0 +1,13 @@
+package com.onemap.api.domain;
+
+public class AuthorizeDto {
+    private String appid;
+
+    public String getAppid() {
+        return appid;
+    }
+
+    public void setAppid(String appid) {
+        this.appid = appid;
+    }
+}

+ 156 - 0
onemap-modules/onemap-api/src/main/java/com/onemap/api/domain/TSysOpenUser.java

@@ -0,0 +1,156 @@
+package com.onemap.api.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.util.Date;
+
+/**
+ * 旗县用户配置表  主键:appid
+ */
+@TableName("t_sys_open_user")
+public class TSysOpenUser {
+    private String appid;
+    private String appname;
+    private String name;
+    private String mobile;
+    private String ip;
+    private String authority;
+    private Integer state;
+    private String img;
+    private String cuser;
+    private Date ctime;
+    private Integer is_delete;
+    private String duser;
+    private Date dtime;
+    private String note;
+    private String xzqdm;
+    private String xzqmc;
+
+    public String getAppid() {
+        return appid;
+    }
+
+    public void setAppid(String appid) {
+        this.appid = appid;
+    }
+
+    public String getAppname() {
+        return appname;
+    }
+
+    public void setAppname(String appname) {
+        this.appname = appname;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public String getAuthority() {
+        return authority;
+    }
+
+    public void setAuthority(String authority) {
+        this.authority = authority;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public String getCuser() {
+        return cuser;
+    }
+
+    public void setCuser(String cuser) {
+        this.cuser = cuser;
+    }
+
+    public Date getCtime() {
+        return ctime;
+    }
+
+    public void setCtime(Date ctime) {
+        this.ctime = ctime;
+    }
+
+    public Integer getIs_delete() {
+        return is_delete;
+    }
+
+    public void setIs_delete(Integer is_delete) {
+        this.is_delete = is_delete;
+    }
+
+    public String getDuser() {
+        return duser;
+    }
+
+    public void setDuser(String duser) {
+        this.duser = duser;
+    }
+
+    public Date getDtime() {
+        return dtime;
+    }
+
+    public void setDtime(Date dtime) {
+        this.dtime = dtime;
+    }
+
+    public String getNote() {
+        return note;
+    }
+
+    public void setNote(String note) {
+        this.note = note;
+    }
+
+    public String getXzqdm() {
+        return xzqdm;
+    }
+
+    public void setXzqdm(String xzqdm) {
+        this.xzqdm = xzqdm;
+    }
+
+    public String getXzqmc() {
+        return xzqmc;
+    }
+
+    public void setXzqmc(String xzqmc) {
+        this.xzqmc = xzqmc;
+    }
+}

+ 13 - 0
onemap-modules/onemap-api/src/main/java/com/onemap/api/mapper/TSysOpenUserMapper.java

@@ -0,0 +1,13 @@
+package com.onemap.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.onemap.api.domain.TSysOpenUser;
+
+/**
+ * 数据层
+ *
+ * @author onemap
+ */
+public interface TSysOpenUserMapper extends BaseMapper<TSysOpenUser> {
+
+}

+ 14 - 0
onemap-modules/onemap-api/src/main/java/com/onemap/api/service/ZhxzService.java

@@ -0,0 +1,14 @@
+package com.onemap.api.service;
+
+import com.onemap.api.domain.AuthorizeDto;
+import com.onemap.common.core.web.domain.RequestResult;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+public interface ZhxzService {
+
+    RequestResult authorize(AuthorizeDto authorizeDto, HttpServletRequest request);
+}

+ 58 - 0
onemap-modules/onemap-api/src/main/java/com/onemap/api/service/impl/ZhxzServiceImpl.java

@@ -0,0 +1,58 @@
+package com.onemap.api.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.onemap.api.domain.AuthorizeDto;
+import com.onemap.api.domain.TSysOpenUser;
+import com.onemap.api.mapper.TSysOpenUserMapper;
+import com.onemap.api.service.ZhxzService;
+import com.onemap.common.core.constant.SecurityConstants;
+import com.onemap.common.core.domain.R;
+import com.onemap.common.core.utils.StringUtils;
+import com.onemap.common.core.web.domain.RequestResult;
+import com.onemap.common.security.service.TokenService;
+import com.onemap.system.api.RemoteUserService;
+import com.onemap.system.api.domain.SysUser;
+import com.onemap.system.api.model.LoginUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+
+@Service
+public class ZhxzServiceImpl implements ZhxzService {
+
+    @Autowired
+    private TSysOpenUserMapper tSysOpenUserMapper;
+    @Autowired
+    private RemoteUserService remoteUserService;
+    @Autowired
+    private TokenService tokenService;
+
+    @Override
+    public RequestResult authorize(AuthorizeDto authorizeDto, HttpServletRequest request) {
+        String appid = authorizeDto.getAppid();
+        String ip = request.getHeader("X-Forwarded-For");
+        if (StringUtils.isEmpty(appid)) {
+            return RequestResult.error("APPID不能为空!");
+        }
+        QueryWrapper<TSysOpenUser> wrapper = new QueryWrapper();
+        wrapper.eq("appid", appid);
+        TSysOpenUser dto = tSysOpenUserMapper.selectOne(wrapper);
+        if (dto == null) {
+            return RequestResult.error("应用不存在,请检查并重新输入!");
+        } else if (dto.getState() == 0) {
+            return RequestResult.error("当前应用已禁用,请联系管理员!");
+        } else if (!ip.equals(dto.getIp())) {//TODO wanger 需不需要校验访问的IP地址
+            return RequestResult.error("非法登录!");
+        }
+        //获得appid绑定的用户名
+        String username = dto.getName();
+        // 查询用户信息
+        R<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
+        LoginUser userInfo = userResult.getData();
+        Map<String, Object> token = tokenService.createToken(userInfo);
+        return RequestResult.success(token);
+    }
+}

+ 2 - 0
onemap-modules/onemap-api/src/main/resources/banner.txt

@@ -0,0 +1,2 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}

+ 25 - 0
onemap-modules/onemap-api/src/main/resources/bootstrap.yml

@@ -0,0 +1,25 @@
+# Tomcat
+server:
+  port: 9209
+
+# Spring
+spring: 
+  application:
+    # 应用名称
+    name: onemap-api
+  profiles:
+    # 环境配置
+    active: dev
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

+ 74 - 0
onemap-modules/onemap-api/src/main/resources/logback.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <!-- 日志存放路径 -->
+	<property name="log.path" value="logs/onemap-gen" />
+   <!-- 日志输出格式 -->
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+    <!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
+
+    <!-- 系统日志输出 -->
+	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+	</appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+			<!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 系统模块日志级别控制  -->
+	<logger name="com.onemap" level="info" />
+	<!-- Spring日志级别控制  -->
+	<logger name="org.springframework" level="warn" />
+
+	<root level="info">
+		<appender-ref ref="console" />
+	</root>
+	
+	<!--系统操作日志-->
+    <root level="info">
+        <appender-ref ref="file_info" />
+        <appender-ref ref="file_error" />
+    </root>
+</configuration>

+ 1 - 0
onemap-modules/pom.xml

@@ -13,6 +13,7 @@
         <module>onemap-gen</module>
 <!--        <module>onemap-job</module>-->
         <module>onemap-file</module>
+        <module>onemap-api</module>
         <module>onemap-apply</module>
         <module>onemap-analyse</module>
         <module>onemap-vector</module>