[release] 0.9.9

This commit is contained in:
Yann Stepienik 2023-07-19 11:27:48 +01:00
parent 52b600deee
commit 59803821ef
8 changed files with 31 additions and 4 deletions

View file

@ -1,3 +1,6 @@
## Version 0.9.9
- Add new filters for routes based on method, query strings and headers (missing UI)
## Version 0.9.1 > 0.9.8
- Fix subdomain logic for composed TLDs
- Add option for custom wildcard domains

View file

@ -73,7 +73,7 @@ const AuthRegister = ({nickname, isRegister, isInviteLink, regkey}) => {
.max(255)
.required('Password is required')
.matches(
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[~!@#$%\^&\*\(\)_\+=\-\{\[\}\]:;"'<,>\.\/])(?=.{9,})/,
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[~!@#$%\^&\*\(\)_\+=\-\{\[\}\]:;"'<,>\/])(?=.{9,})/,
'Must Contain 9 Characters, One Uppercase, One Lowercase, One Number and one special case Character (~!@#$%^&*()_+=-{[}]:;"\'<>.?/)'
),
})}

View file

@ -485,7 +485,7 @@ const NewInstall = () => {
// nickname cant be admin or root
nickname: Yup.string().required('Nickname is required').min(3).max(32)
.matches(/^(?!admin|root).*$/, 'Nickname cannot be admin or root'),
password: Yup.string().required('Password is required').min(8).max(128).matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[~!@#$%\^&\*\(\)_\+=\-\{\[\}\]:;"'<,>\.\/])(?=.{9,})/, 'Password must contain 9 characters: at least 1 lowercase, 1 uppercase, 1 number, and 1 special character'),
password: Yup.string().required('Password is required').min(8).max(128).matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[~!@#$%\^&\*\(\)_\+=\-\{\[\}\]:;"'<,>\/])(?=.{9,})/, 'Password must contain 9 characters: at least 1 lowercase, 1 uppercase, 1 number, and 1 special character'),
email: Yup.string().email('Must be a valid email').max(255),
confirmPassword: Yup.string().oneOf([Yup.ref('password'), null], 'Passwords must match'),
})}

View file

@ -5,7 +5,7 @@ const hasNumber = (number) => new RegExp(/[0-9]/).test(number);
const hasMixed = (number) => new RegExp(/[a-z]/).test(number) && new RegExp(/[A-Z]/).test(number);
// has special chars
const hasSpecial = (number) => new RegExp(/[~!@#$%\^&\*\(\)_\+=\-\{\[\}\]:;"'<,>\.\?\/]/).test(number);
const hasSpecial = (number) => new RegExp(/[~!@#$%\^&\*\(\)_\+=\-\{\[\}\]:;"'<,>\?\/]/).test(number);
// set color based on password strength
export const strengthColor = (count) => {

View file

@ -1,6 +1,6 @@
{
"name": "cosmos-server",
"version": "0.9.8",
"version": "0.9.9",
"description": "",
"main": "test-server.js",
"bugs": {

View file

@ -72,6 +72,18 @@ func RouterGen(route utils.ProxyRouteConfig, router *mux.Router, destination htt
}
destination = http.StripPrefix(route.PathPrefix, destination)
}
for filter := range route.AddionalFilters {
if route.AddionalFilters[filter].Type == "header" {
origin = origin.Headers(route.AddionalFilters[filter].Name, route.AddionalFilters[filter].Value)
} else if route.AddionalFilters[filter].Type == "query" {
origin = origin.Queries(route.AddionalFilters[filter].Name, route.AddionalFilters[filter].Value)
} else if route.AddionalFilters[filter].Type == "method" {
origin = origin.Methods(route.AddionalFilters[filter].Value)
} else {
utils.Error("Unknown filter type: "+route.AddionalFilters[filter].Type, nil)
}
}
destination = SmartShieldMiddleware(route.SmartShield)(destination)

View file

@ -235,6 +235,11 @@ func calculateLowestExhaustedPercentage(policy utils.SmartShieldPolicy, userCons
func GetClientID(r *http.Request) string {
// when using Docker we need to get the real IP
utils.Debug("SmartShield TEMPLOG: Getting client ID")
utils.Debug("SmartShield TEMPLOG HOSTNAME: " + os.Getenv("HOSTNAME"))
utils.Debug("SmartShield TEMPLOG x-forwarded-for: " + r.Header.Get("x-forwarded-for"))
utils.Debug("SmartShield TEMPLOG RemoteAddr: " + r.RemoteAddr)
if os.Getenv("HOSTNAME") != "" && r.Header.Get("x-forwarded-for") != "" {
ip, _, _ := net.SplitHostPort(r.Header.Get("x-forwarded-for"))
utils.Debug("SmartShield: Getting client ID " + ip)

View file

@ -149,6 +149,12 @@ type ProxyConfig struct {
Routes []ProxyRouteConfig
}
type AddionalFiltersConfig struct {
Type string
Name string
Value string
}
type ProxyRouteConfig struct {
Name string `validate:"required"`
Description string
@ -170,6 +176,7 @@ type ProxyRouteConfig struct {
BlockAPIAbuse bool
AcceptInsecureHTTPSTarget bool
HideFromDashboard bool
AddionalFilters []AddionalFiltersConfig
}
type EmailConfig struct {