提交 a474d5ca 编写于 作者: 张乐 提交者: GitHub

Merge pull request #300 from nobodyiam/assign-role-result

return users assigned and adjust rest template timeout
......@@ -41,6 +41,11 @@ public class ServerConfigService {
return serverConfig == null ? null : serverConfig.getValue();
}
public String getValue(String key, String defaultValue) {
String value = getValue(key);
return value == null ? defaultValue : value;
}
String getDataCenter() {
return Foundation.server().getDataCenter();
}
......
package com.ctrip.framework.apollo.common.auth;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
@Target({ElementType.PARAMETER, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@AuthenticationPrincipal
public @interface ActiveUser {
}
......@@ -5,7 +5,6 @@ import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.client.RestTemplate;
import com.ctrip.framework.apollo.common.auth.RestTemplateFactory;
import com.ctrip.framework.apollo.core.enums.Env;
import com.ctrip.framework.apollo.portal.service.ServiceLocator;
......
package com.ctrip.framework.apollo.common.auth;
package com.ctrip.framework.apollo.portal.api;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collection;
import com.google.common.io.BaseEncoding;
import com.ctrip.framework.apollo.portal.service.ServerConfigService;
import org.apache.http.Header;
import org.apache.http.auth.AuthScope;
......@@ -19,13 +19,18 @@ import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import com.google.common.io.BaseEncoding;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collection;
@Component
public class RestTemplateFactory implements FactoryBean<RestTemplate>, InitializingBean {
@Autowired
private HttpMessageConverters httpMessageConverters;
@Autowired
private ServerConfigService serverConfigService;
private RestTemplate restTemplate;
public RestTemplate getObject() {
......@@ -54,7 +59,24 @@ public class RestTemplateFactory implements FactoryBean<RestTemplate>, Initializ
.setDefaultHeaders(defaultHeaders).build();
restTemplate = new RestTemplate(httpMessageConverters.getConverters());
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
HttpComponentsClientHttpRequestFactory requestFactory =
new HttpComponentsClientHttpRequestFactory(httpClient);
requestFactory.setConnectTimeout(getConnectTimeout());
requestFactory.setReadTimeout(getReadTimeout());
restTemplate.setRequestFactory(requestFactory);
}
private int getConnectTimeout() {
String connectTimeout = serverConfigService.getValue("api.connectTimeout", "3000");
return Integer.parseInt(connectTimeout);
}
private int getReadTimeout() {
String readTimeout = serverConfigService.getValue("api.readTimeout", "10000");
return Integer.parseInt(readTimeout);
}
}
......@@ -12,6 +12,8 @@ import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.util.CollectionUtils;
import org.springframework.web.client.RestTemplate;
......@@ -31,13 +33,32 @@ public class CtripUserService implements UserService {
public CtripUserService(ServerConfigService serverConfigService) {
this.serverConfigService = serverConfigService;
this.restTemplate = new RestTemplate();
this.restTemplate = new RestTemplate(clientHttpRequestFactory());
this.searchUserMatchFields =
Lists.newArrayList("empcode", "empaccount", "displayname", "c_name", "pinyin");
this.responseType = new ParameterizedTypeReference<Map<String, List<UserServiceResponse>>>() {
};
}
private ClientHttpRequestFactory clientHttpRequestFactory() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(getConnectTimeout());
factory.setReadTimeout(getReadTimeout());
return factory;
}
private int getConnectTimeout() {
String connectTimeout = serverConfigService.getValue("api.connectTimeout", "3000");
return Integer.parseInt(connectTimeout);
}
private int getReadTimeout() {
String readTimeout = serverConfigService.getValue("api.readTimeout", "3000");
return Integer.parseInt(readTimeout);
}
@Override
public List<UserInfo> searchUsers(String keyword, int offset, int limit) {
UserServiceRequest request = assembleSearchUserRequest(keyword, offset, limit);
......
......@@ -87,9 +87,12 @@ public class RolePermissionService implements InitializingBean {
/**
* Assign role to users
*
* @return the users assigned roles
*/
@Transactional
public void assignRoleToUsers(String roleName, Set<String> userIds, String operatorUserId) {
public Set<String> assignRoleToUsers(String roleName, Set<String> userIds,
String operatorUserId) {
Role role = findRoleByRoleName(roleName);
Preconditions.checkState(role != null, "Role %s doesn't exist!", roleName);
......@@ -110,6 +113,7 @@ public class RolePermissionService implements InitializingBean {
});
userRoleRepository.save(toCreate);
return toAssignUserIds;
}
/**
......
......@@ -28,4 +28,9 @@ public class ServerConfigService {
return serverConfig == null ? null : serverConfig.getValue();
}
public String getValue(String key, String defaultValue) {
String value = getValue(key);
return value == null ? defaultValue : value;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册