Skip to content

Commit de15d4a

Browse files
authored
Merge pull request #110 from WeBankFinTech/1.0.0
1.0.0
2 parents 483f0cd + a35627d commit de15d4a

File tree

59 files changed

+3037
-78
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+3037
-78
lines changed

conf/linkis.properties

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,4 @@ wds.dss.visualis.project.name=default
2727
wds.dss.engine.allowed.creators=Visualis,nodeexecution,IDE
2828
wds.linkis.max.ask.executor.time=45m
2929
wds.linkis.server.component.exclude.classes=com.webank.wedatasphere.linkis.entrance.parser.SparkJobParser
30-
wds.dss.visualis.creator=Visualis
31-
32-
wds.linkis.session.ticket.key=bdp-user-ticket-id
33-
wds.dss.visualis.ticketid=bdp-user-ticket-id
30+
wds.dss.visualis.creator=Visualis

db/ddl.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ CREATE TABLE `visualis_project` (
2929
PRIMARY KEY (`id`)
3030
) ENGINE=InnoDB AUTO_INCREMENT=313 DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
3131

32-
---- visualis使用这个表做权限管理
33-
--DROP TABLE IF EXISTS `linkis_user`;
34-
CREATE TABLE `linkis_user` (
32+
-- visualis使用该表做权限管理
33+
DROP TABLE IF EXISTS `visualis_user`;
34+
CREATE TABLE `visualis_user` (
3535
`id` bigint(20) NOT NULL AUTO_INCREMENT,
3636
`email` varchar(255) DEFAULT NULL,
3737
`username` varchar(255) NOT NULL,

pom.xml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,33 @@
1919
<modules>
2020
<module>assembly</module>
2121
<module>server</module>
22+
<module>visualis-appconn</module>
2223
</modules>
2324

2425
<properties>
2526
<main.basedir>${project.basedir}</main.basedir>
2627
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2728
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
29+
<scala.version>2.11.8</scala.version>
2830
<java.version>1.8</java.version>
2931
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
32+
<scala.binary.version>2.12</scala.binary.version>
33+
<plugin.scala.version>2.15.2</plugin.scala.version>
34+
<jdk.compile.version>1.8</jdk.compile.version>
35+
<skipTests>true</skipTests>
36+
37+
<apache.linkis.version>1.1.1</apache.linkis.version>
38+
<opensource.dss.version>1.1.0</opensource.dss.version>
39+
40+
<elasticsearch.version>5.1.2</elasticsearch.version>
41+
<spring.boot.version>2.3.7.RELEASE</spring.boot.version>
42+
<spring.cloud.version>2.2.1.RELEASE</spring.cloud.version>
43+
<spring.version>5.2.12.RELEASE</spring.version>
44+
<xstream.core.version>1.4.19</xstream.core.version>
45+
<snakeyaml.version>1.26</snakeyaml.version>
46+
<caffeine.version>2.6.2</caffeine.version>
47+
<log4j2.version>2.17.1</log4j2.version>
48+
<poi.version>3.13</poi.version>
3049
</properties>
3150

3251
<repositories>
@@ -79,7 +98,9 @@
7998
<maxmem>1024m</maxmem>
8099
<fork>true</fork>
81100
<compilerArguments>
82-
<bootclasspath>${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar${path.separator}${java.home}/../lib/tools.jar</bootclasspath>
101+
<bootclasspath>
102+
${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar${path.separator}${java.home}/../lib/tools.jar
103+
</bootclasspath>
83104
</compilerArguments>
84105
<compilerArgs>
85106
<arg>-Xlint:all,-serial,-path</arg>

server/pom.xml

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,30 +12,6 @@
1212
<artifactId>visualis-server</artifactId>
1313
<packaging>jar</packaging>
1414

15-
<properties>
16-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
17-
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
18-
<java.version>1.8</java.version>
19-
<scala.version>2.11.8</scala.version>
20-
<scala.binary.version>2.12</scala.binary.version>
21-
<plugin.scala.version>2.15.2</plugin.scala.version>
22-
<jdk.compile.version>1.8</jdk.compile.version>
23-
<skipTests>true</skipTests>
24-
25-
<apache.linkis.version>1.1.1</apache.linkis.version>
26-
<opensource.dss.version>1.1.0</opensource.dss.version>
27-
28-
<elasticsearch.version>5.1.2</elasticsearch.version>
29-
<spring.boot.version>2.3.7.RELEASE</spring.boot.version>
30-
<spring.cloud.version>2.2.1.RELEASE</spring.cloud.version>
31-
<spring.version>5.2.12.RELEASE</spring.version>
32-
<xstream.core.version>1.4.19</xstream.core.version>
33-
<snakeyaml.version>1.26</snakeyaml.version>
34-
<caffeine.version>2.6.2</caffeine.version>
35-
<log4j2.version>2.17.1</log4j2.version>
36-
<poi.version>3.13</poi.version>
37-
</properties>
38-
3915
<dependencies>
4016
<dependency>
4117
<groupId>com.thoughtworks.xstream</groupId>

server/src/main/java/edp/davinci/controller/DashboardController.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ public ResponseEntity getDashboardExcludeRoles(@PathVariable Long id,
135135
@MethodLog
136136
@GetMapping("/{id}/exclude/roles")
137137
public ResponseEntity getPortalExcludeRoles(@PathVariable Long id,
138-
@CurrentUser User user,
139138
HttpServletRequest request) {
140139
if (invalidId(id)) {
141140
ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message("Invalid id");

server/src/main/java/edp/davinci/core/inteceptor/CurrentUserMethodArgumentResolver.java

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,46 @@ public boolean supportsParameter(MethodParameter parameter) {
5050
&& parameter.hasParameterAnnotation(CurrentUser.class);
5151
}
5252

53+
/**
54+
* 动机:
55+
* 由于之前Visualis依赖于linkis_user表,存在极大的耦合,
56+
*
57+
* 解决方式:
58+
* 新建一张visualis_user表,复用原来的权限逻辑,
59+
* 如果访问Visualis时,使用该注解,没有该用户,即插入用户,录入用户信息。
60+
*
61+
* 多个请求同时访问时,需要两步,查数据库和插数据库,这里需要性能优化。
62+
*/
5363
@Override
5464
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) {
55-
try
56-
{
65+
try {
5766
String dssUser = (String) ((ServletWebRequest) webRequest).getRequest().getAttribute("dss-user");
58-
if(StringUtils.isNotBlank(dssUser)){
67+
if (StringUtils.isNotBlank(dssUser)) {
5968
return userMapper.selectByUsername(dssUser);
6069
}
61-
return (User)userMapper.selectByUsername(SecurityFilter.getLoginUsername(webRequest.getNativeRequest(HttpServletRequest.class)));
62-
}catch (Throwable e){
63-
log.error("Failed to get user:",e);
70+
String accessUsername = SecurityFilter.getLoginUsername(webRequest.getNativeRequest(HttpServletRequest.class));
71+
log.info("Get request access user name: {}", accessUsername);
72+
User visualisUser = null;
73+
//to do!
74+
visualisUser = (User) userMapper.selectByUsername(accessUsername);
75+
if(null == visualisUser) {
76+
synchronized (this) {
77+
visualisUser = (User) userMapper.selectByUsername(accessUsername);
78+
log.info("Get visualis user from table: {}", visualisUser);
79+
User user = new User();
80+
if (null == visualisUser) {
81+
user.setUsername(accessUsername);
82+
user.setName(accessUsername);
83+
user.setPassword(null);
84+
log.info("Insert into visualis user: {}", user);
85+
userMapper.insert(user);
86+
return user;
87+
}
88+
}
89+
}
90+
return visualisUser;
91+
} catch (Throwable e) {
92+
log.error("Failed to get user: ", e);
6493
throw e;
6594
}
6695
}

server/src/main/java/edp/davinci/dao/RelUserOrganizationMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public interface RelUserOrganizationMapper {
4747
"SELECT ruo.id, u.id AS 'user.id', ",
4848
" IF(u.`name` is NULL,u.username,u.`name`) AS 'user.username', ",
4949
" u.email, u.avatar AS 'user.avatar', ruo.role AS 'user.role'",
50-
"FROM `linkis_user` u",
50+
"FROM `visualis_user` u",
5151
"LEFT JOIN rel_user_organization ruo on ruo.user_id = u.id",
5252
"LEFT JOIN organization o on o.id = ruo.org_id",
5353
"WHERE ruo.org_id = #{orgId}"

server/src/main/java/edp/davinci/dao/StarMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,14 @@ public interface StarMapper {
5555

5656

5757
@Select({
58-
"select p.*, u.id as 'createBy.id', IF(u.`name` is NULL,u.username,u.`name`) as 'createBy.username', u.avatar as 'createBy.avatar' from visualis_project p left join linkis_user u on u.id = p.user_id ",
58+
"select p.*, u.id as 'createBy.id', IF(u.`name` is NULL,u.username,u.`name`) as 'createBy.username' from visualis_project p left join dss_user u on u.id = p.user_id ",
5959
"where p.id in (select target_id from star where target = #{target} and user_id = #{userId})"
6060
})
6161
List<ProjectWithCreateBy> getStarProjectListByUser(@Param("userId") Long userId, @Param("target") String target);
6262

6363

6464
@Select({
65-
"select u.id, IF(u.`name` is NULL,u.username,u.`name`) as username, u.email, u.avatar, s.star_time from star s left join linkis_user u on u.id = s.user_id",
65+
"select u.id, IF(u.`name` is NULL,u.username,u.`name`) as username, u.email, u.avatar, s.star_time from star s left join visualis_user u on u.id = s.user_id",
6666
"where s.target = #{target} and s.target_id = #{targetId}"
6767
})
6868
List<StarUser> getStarUserListByTarget(@Param("targetId") Long targetId, @Param("target") String target);

server/src/main/java/edp/davinci/dao/UserMapper.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ public interface UserMapper {
3434
int insert(User user);
3535

3636

37-
@Select({"select * from `linkis_user` where id = #{id}"})
37+
@Select({"select * from `visualis_user` where id = #{id}"})
3838
User getById(@Param("id") Long id);
3939

40-
@Select({"select * from `linkis_user` where `username` = #{username} or `email` = #{username} or `name` = #{username}"})
40+
@Select({"select * from `visualis_user` where `username` = #{username} or `email` = #{username} or `name` = #{username}"})
4141
User selectByUsername(@Param("username") String username);
4242

4343
@Select({"select * from `user` where `email` = #{email}"})
@@ -47,29 +47,29 @@ public interface UserMapper {
4747
List<UserBaseInfo> getUsersByKeyword(@Param("keyword") String keyword, @Param("orgId") Long orgId);
4848

4949

50-
@Update({"update `linkis_user` set `name` = #{name}, description = #{description}, department = #{department}, update_time = #{updateTime}",
50+
@Update({"update `visualis_user` set `name` = #{name}, description = #{description}, department = #{department}, update_time = #{updateTime}",
5151
"where id = #{id}"})
5252
int updateBaseInfo(User user);
5353

54-
@Update({"update linkis_user set `avatar` = #{avatar}, update_time = #{updateTime} where id = #{id}"})
54+
@Update({"update visualis_user set `avatar` = #{avatar}, update_time = #{updateTime} where id = #{id}"})
5555
int updateAvatar(User user);
5656

57-
@Select({"select id from linkis_user where (LOWER(`username`) = LOWER(#{name}) or LOWER(`email`) = LOWER(#{name}) or LOWER(`name`) = LOWER(#{name}))"})
57+
@Select({"select id from visualis_user where (LOWER(`username`) = LOWER(#{name}) or LOWER(`email`) = LOWER(#{name}) or LOWER(`name`) = LOWER(#{name}))"})
5858
Long getIdByName(@Param("name") String name);
5959

60-
@Update({"update `linkis_user` set `active` = #{active}, `update_time` = #{updateTime} where id = #{id}"})
60+
@Update({"update `visualis_user` set `active` = #{active}, `update_time` = #{updateTime} where id = #{id}"})
6161
int activeUser(User user);
6262

63-
@Update({"update `linkis_user` set `password` = #{password}, `update_time` = #{updateTime} where id = #{id}"})
63+
@Update({"update `visualis_user` set `password` = #{password}, `update_time` = #{updateTime} where id = #{id}"})
6464
int changePassword(User user);
6565

6666
List<User> getByIds(@Param("userIds") List<Long> userIds);
6767

68-
@Select({"select count(id) from `linkis_user` where `email` = #{email}"})
68+
@Select({"select count(id) from `visualis_user` where `email` = #{email}"})
6969
boolean existEmail(@Param("email") String email);
7070

7171

72-
@Select({"select count(id) from `linkis_user` where `username` = #{username}"})
72+
@Select({"select count(id) from `visualis_user` where `username` = #{username}"})
7373
boolean existUsername(@Param("username") String username);
7474

7575
}

server/src/main/java/edp/davinci/dto/userDto/UserBaseInfo.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ public class UserBaseInfo {
2727

2828
String username;
2929

30-
String avatar;
30+
// 用户头像路径
31+
String avatar = null;
3132

3233
String email;
3334
}

0 commit comments

Comments
 (0)