¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill åºéª (smallchill@163.com) |
| | | */ |
| | | package org.springblade.core.secure.registry; |
| | | |
| | | import lombok.Data; |
| | | import org.springblade.core.secure.props.AuthSecure; |
| | | import org.springblade.core.secure.props.BasicSecure; |
| | | import org.springblade.core.secure.props.SignSecure; |
| | | import org.springblade.core.secure.provider.HttpMethod; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * å®å
¨æ¡æ¶ç»ä¸é
ç½® |
| | | * |
| | | * @author Chill |
| | | */ |
| | | @Data |
| | | public class SecureRegistry { |
| | | |
| | | /** |
| | | * æ¯å¦å¼å¯é´æ |
| | | */ |
| | | private boolean enabled = false; |
| | | |
| | | /** |
| | | * æ¯å¦å¼å¯ææ |
| | | */ |
| | | private boolean authEnabled = true; |
| | | |
| | | /** |
| | | * æ¯å¦å¼å¯åºç¡è®¤è¯ |
| | | */ |
| | | private boolean basicEnabled = true; |
| | | |
| | | /** |
| | | * æ¯å¦å¼å¯ç¾åè®¤è¯ |
| | | */ |
| | | private boolean signEnabled = true; |
| | | |
| | | /** |
| | | * æ¯å¦å¼å¯å®¢æ·ç«¯è®¤è¯ |
| | | */ |
| | | private boolean clientEnabled = true; |
| | | |
| | | /** |
| | | * é»è®¤æ¾è¡è§å |
| | | */ |
| | | private final List<String> defaultExcludePatterns = new ArrayList<>(); |
| | | |
| | | /** |
| | | * èªå®ä¹æ¾è¡è§å |
| | | */ |
| | | private final List<String> excludePatterns = new ArrayList<>(); |
| | | |
| | | /** |
| | | * èªå®ä¹ææéå |
| | | */ |
| | | private final List<AuthSecure> authSecures = new ArrayList<>(); |
| | | |
| | | /** |
| | | * åºç¡è®¤è¯éå |
| | | */ |
| | | private final List<BasicSecure> basicSecures = new ArrayList<>(); |
| | | |
| | | /** |
| | | * ç¾å认è¯éå |
| | | */ |
| | | private final List<SignSecure> signSecures = new ArrayList<>(); |
| | | |
| | | public SecureRegistry() { |
| | | this.defaultExcludePatterns.add("/actuator/health/**"); |
| | | this.defaultExcludePatterns.add("/v2/api-docs/**"); |
| | | this.defaultExcludePatterns.add("/auth/**"); |
| | | this.defaultExcludePatterns.add("/token/**"); |
| | | this.defaultExcludePatterns.add("/log/**"); |
| | | this.defaultExcludePatterns.add("/menu/routes"); |
| | | this.defaultExcludePatterns.add("/menu/auth-routes"); |
| | | this.defaultExcludePatterns.add("/menu/top-menu"); |
| | | this.defaultExcludePatterns.add("/process/resource-view"); |
| | | this.defaultExcludePatterns.add("/process/diagram-view"); |
| | | this.defaultExcludePatterns.add("/manager/check-upload"); |
| | | this.defaultExcludePatterns.add("/error/**"); |
| | | this.defaultExcludePatterns.add("/assets/**"); |
| | | } |
| | | |
| | | /** |
| | | * 设置å个æ¾è¡api |
| | | */ |
| | | public SecureRegistry excludePathPattern(String pattern) { |
| | | this.excludePatterns.add(pattern); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 设置æ¾è¡apiéå |
| | | */ |
| | | public SecureRegistry excludePathPatterns(String... patterns) { |
| | | this.excludePatterns.addAll(Arrays.asList(patterns)); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 设置æ¾è¡apiéå |
| | | */ |
| | | public SecureRegistry excludePathPatterns(List<String> patterns) { |
| | | this.excludePatterns.addAll(patterns); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 设置å个èªå®ä¹ææ |
| | | */ |
| | | public SecureRegistry addAuthPattern(HttpMethod method, String pattern, String expression) { |
| | | this.authSecures.add(new AuthSecure(method, pattern, expression)); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 设置èªå®ä¹ææéå |
| | | */ |
| | | public SecureRegistry addAuthPatterns(List<AuthSecure> authSecures) { |
| | | this.authSecures.addAll(authSecures); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * è¿åèªå®ä¹ææéå |
| | | */ |
| | | public List<AuthSecure> getAuthSecures() { |
| | | return this.authSecures; |
| | | } |
| | | |
| | | /** |
| | | * 设置åºç¡è®¤è¯ |
| | | */ |
| | | public SecureRegistry addBasicPattern(HttpMethod method, String pattern, String username, String password) { |
| | | this.basicSecures.add(new BasicSecure(method, pattern, username, password)); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 设置åºç¡è®¤è¯éå |
| | | */ |
| | | public SecureRegistry addBasicPatterns(List<BasicSecure> basicSecures) { |
| | | this.basicSecures.addAll(basicSecures); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * è¿ååºç¡è®¤è¯éå |
| | | */ |
| | | public List<BasicSecure> getBasicSecures() { |
| | | return this.basicSecures; |
| | | } |
| | | |
| | | /** |
| | | * 设置ç¾åè®¤è¯ |
| | | */ |
| | | public SecureRegistry addSignPattern(HttpMethod method, String pattern, String crypto) { |
| | | this.signSecures.add(new SignSecure(method, pattern, crypto)); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 设置ç¾å认è¯éå |
| | | */ |
| | | public SecureRegistry addSignPatterns(List<SignSecure> signSecures) { |
| | | this.signSecures.addAll(signSecures); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * è¿åç¾å认è¯éå |
| | | */ |
| | | public List<SignSecure> getSignSecures() { |
| | | return this.signSecures; |
| | | } |
| | | |
| | | } |