Signed-off-by: Eric Zhao <sczyh16@gmail.com>master
@@ -13,14 +13,16 @@ | |||||
* See the License for the specific language governing permissions and | * See the License for the specific language governing permissions and | ||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
package com.alibaba.csp.sentinel.dashboard.service; | |||||
package com.alibaba.csp.sentinel.dashboard.auth; | |||||
/** | /** | ||||
* Interface about authentication and authorization | |||||
* Interface for authentication and authorization. | |||||
* | * | ||||
* @author Carpenter Lee | * @author Carpenter Lee | ||||
* @since 1.5.0 | |||||
*/ | */ | ||||
public interface AuthService<R> { | public interface AuthService<R> { | ||||
/** | /** | ||||
* Get the authentication user. | * Get the authentication user. | ||||
* | * | ||||
@@ -30,41 +32,42 @@ public interface AuthService<R> { | |||||
AuthUser getAuthUser(R request); | AuthUser getAuthUser(R request); | ||||
/** | /** | ||||
* privilege type. | |||||
* Privilege type. | |||||
*/ | */ | ||||
enum PrivilegeType { | enum PrivilegeType { | ||||
/** | /** | ||||
* read rule | |||||
* Read rule | |||||
*/ | */ | ||||
READ_RULE, | READ_RULE, | ||||
/** | /** | ||||
* create or modify rule | |||||
* Create or modify rule | |||||
*/ | */ | ||||
WRITE_RULE, | WRITE_RULE, | ||||
/** | /** | ||||
* delete rule | |||||
* Delete rule | |||||
*/ | */ | ||||
DELETE_RULE, | DELETE_RULE, | ||||
/** | /** | ||||
* read metrics | |||||
* Read metrics | |||||
*/ | */ | ||||
READ_METRIC, | READ_METRIC, | ||||
/** | /** | ||||
* add machine | |||||
* Add machine | |||||
*/ | */ | ||||
ADD_MACHINE, | ADD_MACHINE, | ||||
/** | /** | ||||
* equals all privileges above | |||||
* All privileges above are granted. | |||||
*/ | */ | ||||
ALL | ALL | ||||
} | } | ||||
/** | /** | ||||
* entity represents the current user | |||||
* Represents the current user. | |||||
*/ | */ | ||||
interface AuthUser { | interface AuthUser { | ||||
/** | /** | ||||
* query whether current user has the specific privilege to the target, the target | |||||
* Query whether current user has the specific privilege to the target, the target | |||||
* may be an app name or an ip address, or other destination. | * may be an app name or an ip address, or other destination. | ||||
* <p> | * <p> | ||||
* This method will use return value to represent whether user has the specific | * This method will use return value to represent whether user has the specific | ||||
@@ -80,32 +83,31 @@ public interface AuthService<R> { | |||||
boolean authTarget(String target, PrivilegeType privilegeType); | boolean authTarget(String target, PrivilegeType privilegeType); | ||||
/** | /** | ||||
* check whether current user is super user | |||||
* Check whether current user is a super-user. | |||||
* | * | ||||
* @return if current user is super user return true, else return false. | * @return if current user is super user return true, else return false. | ||||
*/ | */ | ||||
boolean isSuperUser(); | boolean isSuperUser(); | ||||
/** | /** | ||||
* get current user's nick name. | |||||
* Get current user's nick name. | |||||
* | * | ||||
* @return current user's nick name. | * @return current user's nick name. | ||||
*/ | */ | ||||
String getNickName(); | String getNickName(); | ||||
/** | /** | ||||
* get current user's login name. | |||||
* Get current user's login name. | |||||
* | * | ||||
* @return current user's login name. | * @return current user's login name. | ||||
*/ | */ | ||||
String getLoginName(); | String getLoginName(); | ||||
/** | /** | ||||
* get current user's employ id. | |||||
* Get current user's ID. | |||||
* | * | ||||
* @return current user's employ id. | |||||
* @return ID of current user | |||||
*/ | */ | ||||
String getEmpId(); | |||||
String getId(); | |||||
} | } | ||||
} | } |
@@ -13,7 +13,7 @@ | |||||
* See the License for the specific language governing permissions and | * See the License for the specific language governing permissions and | ||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
package com.alibaba.csp.sentinel.dashboard.service; | |||||
package com.alibaba.csp.sentinel.dashboard.auth; | |||||
import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
@@ -23,12 +23,13 @@ import org.springframework.stereotype.Component; | |||||
* A fake AuthService implementation, which will pass all user auth checking. | * A fake AuthService implementation, which will pass all user auth checking. | ||||
* | * | ||||
* @author Carpenter Lee | * @author Carpenter Lee | ||||
* @since 1.5.0 | |||||
*/ | */ | ||||
@Component | @Component | ||||
public class FakeAuthServiceImpl implements AuthService<HttpServletRequest> { | public class FakeAuthServiceImpl implements AuthService<HttpServletRequest> { | ||||
@Override | @Override | ||||
public AuthUser getAuthUser(HttpServletRequest request) { | public AuthUser getAuthUser(HttpServletRequest request) { | ||||
return new AuthUserImpl(); | return new AuthUserImpl(); | ||||
} | } | ||||
@@ -57,7 +58,7 @@ public class FakeAuthServiceImpl implements AuthService<HttpServletRequest> { | |||||
} | } | ||||
@Override | @Override | ||||
public String getEmpId() { | |||||
public String getId() { | |||||
return "FAKE_EMP_ID"; | return "FAKE_EMP_ID"; | ||||
} | } | ||||
} | } |
@@ -23,15 +23,15 @@ import org.apache.commons.lang.math.NumberUtils; | |||||
import org.springframework.lang.NonNull; | import org.springframework.lang.NonNull; | ||||
/** | /** | ||||
* Dashboard config support | |||||
* <p>Dashboard local config support.</p> | |||||
* <p> | * <p> | ||||
* Dashboard supports configuration loading by several ways by order:<br> | * Dashboard supports configuration loading by several ways by order:<br> | ||||
* 1. System.properties<br> | * 1. System.properties<br> | ||||
* 2. Env | * 2. Env | ||||
* | |||||
* </p> | |||||
* | |||||
* @author jason | * @author jason | ||||
* @since 1.5.0 | * @since 1.5.0 | ||||
* | |||||
*/ | */ | ||||
public class DashboardConfig { | public class DashboardConfig { | ||||
@@ -27,8 +27,8 @@ import javax.servlet.ServletResponse; | |||||
import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
import com.alibaba.csp.sentinel.adapter.servlet.CommonFilter; | import com.alibaba.csp.sentinel.adapter.servlet.CommonFilter; | ||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.AuthUser; | |||||
import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
@@ -47,6 +47,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | |||||
public class WebConfig implements WebMvcConfigurer { | public class WebConfig implements WebMvcConfigurer { | ||||
private final Logger logger = LoggerFactory.getLogger(WebConfig.class); | private final Logger logger = LoggerFactory.getLogger(WebConfig.class); | ||||
@Autowired | @Autowired | ||||
private AuthService<HttpServletRequest> authService; | private AuthService<HttpServletRequest> authService; | ||||
@@ -22,9 +22,9 @@ import javax.servlet.http.HttpServletRequest; | |||||
import com.alibaba.csp.sentinel.dashboard.client.SentinelApiClient; | import com.alibaba.csp.sentinel.dashboard.client.SentinelApiClient; | ||||
import com.alibaba.csp.sentinel.dashboard.discovery.MachineInfo; | import com.alibaba.csp.sentinel.dashboard.discovery.MachineInfo; | ||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.slots.block.RuleConstant; | import com.alibaba.csp.sentinel.slots.block.RuleConstant; | ||||
import com.alibaba.csp.sentinel.util.StringUtil; | import com.alibaba.csp.sentinel.util.StringUtil; | ||||
@@ -22,9 +22,9 @@ import javax.servlet.http.HttpServletRequest; | |||||
import com.alibaba.csp.sentinel.dashboard.client.SentinelApiClient; | import com.alibaba.csp.sentinel.dashboard.client.SentinelApiClient; | ||||
import com.alibaba.csp.sentinel.dashboard.discovery.MachineInfo; | import com.alibaba.csp.sentinel.dashboard.discovery.MachineInfo; | ||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.slots.block.RuleConstant; | import com.alibaba.csp.sentinel.slots.block.RuleConstant; | ||||
import com.alibaba.csp.sentinel.util.StringUtil; | import com.alibaba.csp.sentinel.util.StringUtil; | ||||
@@ -20,9 +20,9 @@ import java.util.List; | |||||
import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.util.StringUtil; | import com.alibaba.csp.sentinel.util.StringUtil; | ||||
import com.alibaba.csp.sentinel.dashboard.client.SentinelApiClient; | import com.alibaba.csp.sentinel.dashboard.client.SentinelApiClient; | ||||
@@ -27,9 +27,9 @@ import com.alibaba.csp.sentinel.dashboard.client.CommandNotFoundException; | |||||
import com.alibaba.csp.sentinel.dashboard.client.SentinelApiClient; | import com.alibaba.csp.sentinel.dashboard.client.SentinelApiClient; | ||||
import com.alibaba.csp.sentinel.dashboard.discovery.AppManagement; | import com.alibaba.csp.sentinel.dashboard.discovery.AppManagement; | ||||
import com.alibaba.csp.sentinel.dashboard.discovery.MachineInfo; | import com.alibaba.csp.sentinel.dashboard.discovery.MachineInfo; | ||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.slots.block.RuleConstant; | import com.alibaba.csp.sentinel.slots.block.RuleConstant; | ||||
import com.alibaba.csp.sentinel.util.StringUtil; | import com.alibaba.csp.sentinel.util.StringUtil; | ||||
@@ -20,9 +20,9 @@ import java.util.List; | |||||
import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.util.StringUtil; | import com.alibaba.csp.sentinel.util.StringUtil; | ||||
import com.alibaba.csp.sentinel.dashboard.datasource.entity.rule.SystemRuleEntity; | import com.alibaba.csp.sentinel.dashboard.datasource.entity.rule.SystemRuleEntity; | ||||
@@ -20,9 +20,9 @@ import java.util.List; | |||||
import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.service.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.AuthUser; | |||||
import com.alibaba.csp.sentinel.dashboard.auth.AuthService.PrivilegeType; | |||||
import com.alibaba.csp.sentinel.util.StringUtil; | import com.alibaba.csp.sentinel.util.StringUtil; | ||||
import com.alibaba.csp.sentinel.dashboard.datasource.entity.rule.FlowRuleEntity; | import com.alibaba.csp.sentinel.dashboard.datasource.entity.rule.FlowRuleEntity; | ||||