/*
* Licensed to the Apache Software Foundation ( ASF ) under one or more
* contributor license agreements . See the NOTICE file distributed with
* this work for additional information regarding copyright ownership .
* The ASF licenses this file to You 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 jakarta.servlet;
import java.util.ResourceBundle;
import jakarta.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
import jakarta.servlet.annotation.ServletSecurity.TransportGuarantee;
/**
* Equivalent of { @ link jakarta . servlet . annotation . HttpConstraint } for programmatic configuration of security
* constraints .
*
* @ since Servlet 3 . 0
*/
public class HttpConstraintElement {
private static final String LSTRING_FILE = "jakarta.servlet.LocalStrings" ;
private static final ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
private final EmptyRoleSemantic emptyRoleSemantic;// = EmptyRoleSemantic.PERMIT;
private final TransportGuarantee transportGuarantee;// = TransportGuarantee.NONE;
private final String[] rolesAllowed;// = new String[0];
/**
* Default constraint is permit with no transport guarantee .
*/
public HttpConstraintElement() {
// Default constructor
this .emptyRoleSemantic = EmptyRoleSemantic.PERMIT;
this .transportGuarantee = TransportGuarantee.NONE;
this .rolesAllowed = new String[0 ];
}
/**
* Construct a constraint with an empty role semantic . Typically used with { @ link EmptyRoleSemantic # DENY } .
*
* @ param emptyRoleSemantic The empty role semantic to apply to the newly created constraint
*/
public HttpConstraintElement(EmptyRoleSemantic emptyRoleSemantic) {
this .emptyRoleSemantic = emptyRoleSemantic;
this .transportGuarantee = TransportGuarantee.NONE;
this .rolesAllowed = new String[0 ];
}
/**
* Construct a constraint with a transport guarantee and roles .
*
* @ param transportGuarantee The transport guarantee to apply to the newly created constraint
* @ param rolesAllowed The roles to associate with the newly created constraint
*/
public HttpConstraintElement(TransportGuarantee transportGuarantee, String... rolesAllowed) {
this .emptyRoleSemantic = EmptyRoleSemantic.PERMIT;
this .transportGuarantee = transportGuarantee;
this .rolesAllowed = rolesAllowed;
}
/**
* Construct a constraint with an empty role semantic , a transport guarantee and roles .
*
* @ param emptyRoleSemantic The empty role semantic to apply to the newly created constraint
* @ param transportGuarantee The transport guarantee to apply to the newly created constraint
* @ param rolesAllowed The roles to associate with the newly created constraint
*
* @ throws IllegalArgumentException if roles are specified when DENY is used
*/
public HttpConstraintElement(EmptyRoleSemantic emptyRoleSemantic, TransportGuarantee transportGuarantee,
String... rolesAllowed) {
if (rolesAllowed != null && rolesAllowed.length > 0 && EmptyRoleSemantic.DENY.equals(emptyRoleSemantic)) {
throw new IllegalArgumentException(lStrings.getString("httpConstraintElement.invalidRolesDeny" ));
}
this .emptyRoleSemantic = emptyRoleSemantic;
this .transportGuarantee = transportGuarantee;
this .rolesAllowed = rolesAllowed;
}
/**
* TODO
*
* @ return TODO
*/
public EmptyRoleSemantic getEmptyRoleSemantic() {
return emptyRoleSemantic;
}
/**
* TODO
*
* @ return TODO
*/
public TransportGuarantee getTransportGuarantee() {
return transportGuarantee;
}
/**
* TODO
*
* @ return TODO
*/
public String[] getRolesAllowed() {
return rolesAllowed;
}
}
Messung V0.5 in Prozent C=90 H=97 G=93
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland