org.wildfly.test.security.common.elytron.MatchRules Maven / Gradle / Ivy
/*
* Copyright 2017 Red Hat, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wildfly.test.security.common.elytron;
/**
* Helper class for adding "match-rules" attributes into CLI commands.
*
* @author Stefan Guilhen
*/
public class MatchRules implements CliFragment {
private final String authenticationConfiguration;
private final String matchAbstractType;
private final String matchAbstractTypeAuthority;
private final String matchHost;
private final String matchLocalSecurityDomain;
private final Boolean matchNoUser;
private final String matchPath;
private final String matchPort;
private final String matchProtocol;
private final String matchPurpose;
private final String matchUrn;
private final String matchUser;
private final String sslContext;
private MatchRules(final Builder builder) {
this.authenticationConfiguration = builder.authenticationConfiguration;
this.matchAbstractType = builder.matchAbstractType;
this.matchAbstractTypeAuthority = builder.matchAbstractTypeAuthority;
this.matchHost = builder.matchHost;
this.matchLocalSecurityDomain = builder.matchLocalSecurityDomain;
this.matchNoUser = builder.matchNoUser;
this.matchPath = builder.matchPath;
this.matchPort = builder.matchPort;
this.matchProtocol = builder.matchProtocol;
this.matchPurpose = builder.matchPurpose;
this.matchUrn = builder.matchUrn;
this.matchUser = builder.matchUser;
this.sslContext = builder.sslContext;
}
@Override
public String asString() {
StringBuilder sb = new StringBuilder("match-rules=[{");
if (authenticationConfiguration != null && !authenticationConfiguration.isEmpty()) {
sb.append(String.format("authentication-configuration=\"%s\", ", authenticationConfiguration));
}
if (matchAbstractType != null && !matchAbstractType.isEmpty()) {
sb.append(String.format("match-abstract-type=\"%s\", ", matchAbstractType));
}
if (matchAbstractTypeAuthority != null && !matchAbstractTypeAuthority.isEmpty()) {
sb.append(String.format("match-abstract-type-authority=\"%s\", ", matchAbstractTypeAuthority));
}
if (matchHost != null && !matchHost.isEmpty()) {
sb.append(String.format("match-host=\"%s\", ", matchHost));
}
if (matchLocalSecurityDomain != null && !matchLocalSecurityDomain.isEmpty()) {
sb.append(String.format("match-local-security-domain=\"%s\", ", matchLocalSecurityDomain));
}
if (matchNoUser != null) {
sb.append(String.format("match-no-user=\"%s\", ", matchNoUser.toString()));
}
if (matchPath != null && !matchPath.isEmpty()) {
sb.append(String.format("match-path=\"%s\", ", matchPath));
}
if (matchPort != null && !matchPort.isEmpty()) {
sb.append(String.format("match-port=\"%s\", ", matchPort));
}
if (matchProtocol != null && !matchProtocol.isEmpty()) {
sb.append(String.format("match-protocol=\"%s\", ", matchProtocol));
}
if (matchPurpose != null && !matchPurpose.isEmpty()) {
sb.append(String.format("match-purpose=\"%s\", ", matchPurpose));
}
if (matchUrn != null && !matchUrn.isEmpty()) {
sb.append(String.format("match-urn=\"%s\", ", matchUrn));
}
if (matchUser != null && !matchUser.isEmpty()) {
sb.append(String.format("match-user=\"%s\", ", matchUser));
}
if (sslContext != null && !sslContext.isEmpty()) {
sb.append(String.format("ssl-context=\"%s\", ", sslContext));
}
sb.append("}], ");
return sb.toString();
}
public static Builder builder() {
return new Builder();
}
public static final class Builder {
private String authenticationConfiguration;
private String matchAbstractTypeAuthority;
private String matchAbstractType;
private String matchHost;
private String matchLocalSecurityDomain;
private Boolean matchNoUser;
private String matchPath;
private String matchPort;
private String matchProtocol;
private String matchPurpose;
private String matchUrn;
private String matchUser;
private String sslContext;
private Builder() {
}
public Builder withAuthenticationConfiguration(final String authenticationConfiguration) {
this.authenticationConfiguration = authenticationConfiguration;
return this;
}
public Builder withMatchAbstractType(final String matchAbstractType) {
this.matchAbstractType = matchAbstractType;
return this;
}
public Builder withMatchAbstractTypeAuthority(final String matchAbstractTypeAuthority) {
this.matchAbstractTypeAuthority = matchAbstractTypeAuthority;
return this;
}
public Builder withMatchHost(final String matchHost) {
this.matchHost = matchHost;
return this;
}
public Builder withMatchLocalSecurityDomain(final String matchLocalSecurityDomain) {
this.matchLocalSecurityDomain = matchLocalSecurityDomain;
return this;
}
public Builder withMatchNoUser(final Boolean matchNoUser) {
this.matchNoUser = matchNoUser;
return this;
}
public Builder withMatchPath(final String matchPath) {
this.matchPath = matchPath;
return this;
}
public Builder withMatchPort(final String matchPort) {
this.matchPort = matchPort;
return this;
}
public Builder withMatchProtocol(final String matchProtocol) {
this.matchProtocol = matchProtocol;
return this;
}
public Builder withMatchPurpose(final String matchPurpose) {
this.matchPurpose = matchPurpose;
return this;
}
public Builder withMatchUrn(final String matchUrn) {
this.matchUrn = matchUrn;
return this;
}
public Builder withMatchUser(final String matchUser) {
this.matchUser = matchUser;
return this;
}
public Builder withSslContext(final String sslContext) {
this.sslContext = sslContext;
return this;
}
public MatchRules build() {
return new MatchRules(this);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy