Skip to content

Commit c5fb5ca

Browse files
authored
Merge pull request #359 from FlowCI/feature/1473
remove default admin settings
2 parents d00cb61 + 1e868bf commit c5fb5ca

File tree

14 files changed

+70
-79
lines changed

14 files changed

+70
-79
lines changed

core/src/main/java/com/flowci/core/auth/AuthController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,6 @@ private User getFromAuthorization(String authorization) {
7171
String email = values[0];
7272
String passwordOnMd5 = values[1];
7373

74-
return new User(email, passwordOnMd5, null);
74+
return new User(email, passwordOnMd5, null, null);
7575
}
7676
}

core/src/main/java/com/flowci/core/auth/WebAuth.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@
4545
@Component("webAuth")
4646
public class WebAuth implements HandlerInterceptor {
4747

48-
private static final String MagicToken = "helloflowciadmin";
49-
5048
private static final String HeaderToken = "Token";
5149

5250
private static final String ParameterToken = "token";
@@ -91,15 +89,10 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons
9189
return true;
9290
}
9391

94-
return authService.setAsDefaultAdmin();
92+
return true;
9593
}
9694

9795
String token = getToken(request);
98-
99-
if (Objects.equals(token, MagicToken)) {
100-
return authService.setAsDefaultAdmin();
101-
}
102-
10396
if (!authService.set(token)) {
10497
throw new AuthenticationException("Invalid token");
10598
}

core/src/main/java/com/flowci/core/auth/service/AuthService.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,4 @@ public interface AuthService {
6565
*/
6666
Optional<User> get(String token);
6767

68-
/**
69-
* Set current user from default admin form config properties
70-
*/
71-
boolean setAsDefaultAdmin();
7268
}

core/src/main/java/com/flowci/core/auth/service/AuthServiceImpl.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,4 @@ public Optional<User> get(String token) {
153153

154154
return Optional.empty();
155155
}
156-
157-
@Override
158-
public boolean setAsDefaultAdmin() {
159-
User defaultAdmin = userService.defaultAdmin();
160-
sessionManager.set(defaultAdmin);
161-
return true;
162-
}
163156
}

core/src/main/java/com/flowci/core/common/config/AppProperties.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,6 @@ public class AppProperties {
6060

6161
private boolean socketContainer;
6262

63-
@Bean("adminProperties")
64-
@ConfigurationProperties(prefix = "app.admin")
65-
public Admin admin() {
66-
return new Admin();
67-
}
68-
6963
@Bean("zkProperties")
7064
@ConfigurationProperties(prefix = "app.zookeeper")
7165
public Zookeeper zk() {
@@ -108,18 +102,6 @@ public Minio minio() {
108102
return new Minio();
109103
}
110104

111-
@Data
112-
@Validated
113-
public static class Admin {
114-
115-
@NotBlank
116-
@Email
117-
private String defaultEmail;
118-
119-
@NotBlank
120-
private String defaultPassword;
121-
}
122-
123105
@Data
124106
public static class Flow {
125107

core/src/main/java/com/flowci/core/common/config/WebConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public void addInterceptors(InterceptorRegistry registry) {
7878

7979
registry.addInterceptor(webAuth)
8080
.addPathPatterns("/users/**")
81+
.excludePathPatterns("/users/default")
8182
.addPathPatterns("/flows/**")
8283
.addPathPatterns("/jobs/**")
8384
.addPathPatterns("/agents/**")

core/src/main/java/com/flowci/core/user/UserController.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import com.flowci.core.user.service.UserService;
2323
import com.flowci.exception.ArgumentException;
2424
import java.util.Objects;
25+
import java.util.Optional;
26+
2527
import org.springframework.beans.factory.annotation.Autowired;
2628
import org.springframework.data.domain.Page;
2729
import org.springframework.data.domain.PageRequest;
@@ -45,6 +47,17 @@ public class UserController {
4547
@Autowired
4648
private AuthService authService;
4749

50+
@GetMapping("/default")
51+
public Boolean hasDefaultAdmin() {
52+
Optional<User> user = userService.defaultAdmin();
53+
return user.isPresent();
54+
}
55+
56+
@PostMapping("/default")
57+
public void createDefaultAdmin(@Validated @RequestBody CreateUser body) {
58+
userService.createDefaultAdmin(body.getEmail(), body.getPasswordOnMd5());
59+
}
60+
4861
@GetMapping
4962
@Action(UserAction.LIST_ALL)
5063
public Page<User> listAll(@RequestParam(required = false, defaultValue = DefaultPage) int page,

core/src/main/java/com/flowci/core/user/dao/UserDao.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import java.util.Collection;
2424
import java.util.List;
25+
import java.util.Optional;
2526

2627
/**
2728
* @author yang
@@ -32,4 +33,6 @@ public interface UserDao extends MongoRepository<User, String> {
3233
User findByEmail(String email);
3334

3435
List<User> findAllByEmailIn(Collection<String> emails);
36+
37+
Optional<User> findByRoleAndDefaultAdmin(User.Role role, Boolean defaultAdmin);
3538
}

core/src/main/java/com/flowci/core/user/domain/User.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,15 @@ public enum Role {
5454

5555
private Role role;
5656

57+
private Boolean defaultAdmin;
58+
5759
@JsonIgnore
5860
public boolean isAdmin() {
5961
return role == Role.Admin;
6062
}
63+
64+
@JsonIgnore
65+
public boolean isDefaultAdmin() {
66+
return isAdmin() && defaultAdmin != null;
67+
}
6168
}

core/src/main/java/com/flowci/core/user/service/UserService.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import java.util.Collection;
2424
import java.util.List;
25+
import java.util.Optional;
2526

2627
/**
2728
* @author yang
@@ -41,12 +42,17 @@ public interface UserService {
4142
/**
4243
* Get default admin user
4344
*/
44-
User defaultAdmin();
45+
Optional<User> defaultAdmin();
46+
47+
/**
48+
* Create default admin user
49+
*/
50+
User createDefaultAdmin(String email, String passwordOnMd5);
4551

4652
/**
4753
* Create user by email and password;
4854
*/
49-
User create(String email, String password, User.Role role);
55+
User create(String email, String passwordOnMd5, User.Role role);
5056

5157
/**
5258
* Get user by email

0 commit comments

Comments
 (0)