Module org.eclipse.jetty.security
Package org.eclipse.jetty.security
Class SecurityHandler.PathMapped
java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.ContainerLifeCycle
org.eclipse.jetty.server.Handler.Abstract
org.eclipse.jetty.server.Handler.AbstractContainer
org.eclipse.jetty.server.Handler.Wrapper
org.eclipse.jetty.security.SecurityHandler
org.eclipse.jetty.security.SecurityHandler.PathMapped
- All Implemented Interfaces:
Comparator<org.eclipse.jetty.http.pathmap.PathSpec>,Authenticator.Configuration,org.eclipse.jetty.server.Handler,org.eclipse.jetty.server.Handler.Container,org.eclipse.jetty.server.Handler.Singleton,org.eclipse.jetty.server.Request.Handler,org.eclipse.jetty.util.component.Container,org.eclipse.jetty.util.component.Destroyable,org.eclipse.jetty.util.component.Dumpable,org.eclipse.jetty.util.component.Dumpable.DumpableContainer,org.eclipse.jetty.util.component.LifeCycle,org.eclipse.jetty.util.thread.Invocable
- Enclosing class:
SecurityHandler
public static class SecurityHandler.PathMapped
extends SecurityHandler
implements Comparator<org.eclipse.jetty.http.pathmap.PathSpec>
A concrete implementation of SecurityHandler that uses a PathMappings to
match request to a list of Constraints, which are applied in the order of
least significant to most significant.
An example of using this class is:
SecurityHandler.PathMapped handler = new SecurityHandler.PathMapped();
handler.put("/*", Constraint.combine(Constraint.FORBIDDEN, Constraint.SECURE_TRANSPORT);
handler.put("", Constraint.ALLOWED);
handler.put("/login", Constraint.ALLOWED);
handler.put("*.png", Constraint.ANY_TRANSPORT);
handler.put("/admin/*", Constraint.from("admin", "operator"));
handler.put("/admin/super/*", Constraint.from("operator"));
handler.put("/user/*", Constraint.ANY_USER);
handler.put("*.xml", Constraint.FORBIDDEN);
When getConstraint(String, Request) is called, any matching
constraints are sorted into least to most significant with
compare(PathSpec, PathSpec), resulting in the order in which
Constraint.combine(Constraint, Constraint) will be applied.
For example:
"/admin/index.html"matches"/*"and"/admin/*", resulting in a constraint ofConstraint.Authorization.SPECIFIC_ROLEandConstraint.Transport.SECURE."/admin/logo.png"matches"/*","/admin/*"and"*.png", resulting in a constraint ofConstraint.Authorization.SPECIFIC_ROLEandConstraint.Transport.ANY."/admin/config.xml"matches"/*","/admin/*"and"*.xml", resulting in a constraint ofConstraint.Authorization.FORBIDDENandConstraint.Transport.SECURE."/admin/super/index.html"matches"/*","/admin/*"and"/admin/super/*", resulting in a constraint ofConstraint.Authorization.SPECIFIC_ROLEandConstraint.Transport.SECURE.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.security.SecurityHandler
SecurityHandler.NotChecked, SecurityHandler.PathMappedNested classes/interfaces inherited from class org.eclipse.jetty.server.Handler.Abstract
org.eclipse.jetty.server.Handler.Abstract.NonBlockingNested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopExceptionNested classes/interfaces inherited from interface org.eclipse.jetty.security.Authenticator.Configuration
Authenticator.Configuration.WrapperNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.ListenerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainerNested classes/interfaces inherited from interface org.eclipse.jetty.server.Handler
org.eclipse.jetty.server.Handler.Abstract, org.eclipse.jetty.server.Handler.AbstractContainer, org.eclipse.jetty.server.Handler.Collection, org.eclipse.jetty.server.Handler.Container, org.eclipse.jetty.server.Handler.Sequence, org.eclipse.jetty.server.Handler.Singleton, org.eclipse.jetty.server.Handler.WrapperNested classes/interfaces inherited from interface org.eclipse.jetty.util.thread.Invocable
org.eclipse.jetty.util.thread.Invocable.Callable, org.eclipse.jetty.util.thread.Invocable.InvocationType, org.eclipse.jetty.util.thread.Invocable.ReadyTask, org.eclipse.jetty.util.thread.Invocable.TaskNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
org.eclipse.jetty.util.component.LifeCycle.ListenerNested classes/interfaces inherited from interface org.eclipse.jetty.server.Request.Handler
org.eclipse.jetty.server.Request.Handler.AbortException -
Field Summary
Fields inherited from class org.eclipse.jetty.security.SecurityHandler
SESSION_AUTHENTICATED_ATTRIBUTEFields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, STARTED, STARTING, STOPPED, STOPPINGFields inherited from interface org.eclipse.jetty.util.component.Dumpable
KEYFields inherited from interface org.eclipse.jetty.util.thread.Invocable
__nonBlocking, NOOP -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintcompare(org.eclipse.jetty.http.pathmap.PathSpec ps1, org.eclipse.jetty.http.pathmap.PathSpec ps2) Comparatormethod to sort paths from least specific to most specific.get(org.eclipse.jetty.http.pathmap.PathSpec pathSpec) protected ConstraintgetConstraint(String pathInContext, org.eclipse.jetty.server.Request request) protected intpathSpecGroupPrecedence(org.eclipse.jetty.http.pathmap.PathSpecGroup group) Get the relative precedence of aPathSpecGroupused bycompare(MappedResource, MappedResource)to sortConstraints.put(String pathSpec, Constraint constraint) put(org.eclipse.jetty.http.pathmap.PathSpec pathSpec, Constraint constraint) remove(org.eclipse.jetty.http.pathmap.PathSpec pathSpec) Methods inherited from class org.eclipse.jetty.security.SecurityHandler
doStart, doStop, findIdentityService, findLoginService, getAuthenticationType, getAuthenticator, getAuthenticatorFactory, getCurrentSecurityHandler, getIdentityService, getKnownAuthenticatorFactories, getLoginService, getParameter, getParameterNames, getRealmName, getSessionMaxInactiveIntervalOnAuthentication, handle, isAuthorized, isSessionRenewedOnAuthentication, redirectToSecure, setAuthenticationType, setAuthenticator, setAuthenticatorFactory, setIdentityService, setLoginService, setParameter, setRealmName, setSessionMaxInactiveIntervalOnAuthentication, setSessionRenewedOnAuthenticationMethods inherited from class org.eclipse.jetty.server.Handler.Wrapper
getHandler, getInvocationType, setHandlerMethods inherited from class org.eclipse.jetty.server.Handler.AbstractContainer
findContainerOf, getDescendant, getDescendants, isDynamic, setDynamic, setServerMethods inherited from class org.eclipse.jetty.server.Handler.Abstract
destroy, getServerMethods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, installBean, installBean, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeansMethods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Comparator
equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongMethods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListenersMethods inherited from interface org.eclipse.jetty.util.component.Destroyable
destroyMethods inherited from interface org.eclipse.jetty.util.component.Dumpable
dumpSelfMethods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpableMethods inherited from interface org.eclipse.jetty.server.Handler
getServer, setServerMethods inherited from interface org.eclipse.jetty.server.Handler.Container
getContainer, getDescendant, getDescendants, getDescendantsMethods inherited from interface org.eclipse.jetty.server.Handler.Singleton
getHandlers, getTail, insertHandler, setHandlerMethods inherited from interface org.eclipse.jetty.util.component.LifeCycle
addEventListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, start, stop
-
Constructor Details
-
PathMapped
public PathMapped() -
PathMapped
public PathMapped(org.eclipse.jetty.server.Handler handler)
-
-
Method Details
-
put
-
put
-
get
-
remove
-
getConstraint
- Specified by:
getConstraintin classSecurityHandler
-
compare
public int compare(org.eclipse.jetty.http.pathmap.PathSpec ps1, org.eclipse.jetty.http.pathmap.PathSpec ps2) Comparatormethod to sort paths from least specific to most specific. Using thepathSpecGroupPrecedence(PathSpecGroup)to rank different groups andPathSpec.getSpecLength()to rank within a group. This method may be overridden to provide different precedence between constraints.- Specified by:
comparein interfaceComparator<org.eclipse.jetty.http.pathmap.PathSpec>- Parameters:
ps1- the firstPathSpecto be compared.ps2- the secondPathSpecto be compared.- Returns:
- -1, 0 or 1
-
pathSpecGroupPrecedence
protected int pathSpecGroupPrecedence(org.eclipse.jetty.http.pathmap.PathSpecGroup group) Get the relative precedence of aPathSpecGroupused bycompare(MappedResource, MappedResource)to sortConstraints. The precedence from most significant to least is:PathSpecGroup.EXACTPathSpecGroup.ROOTPathSpecGroup.SUFFIX_GLOBPathSpecGroup.MIDDLE_GLOBPathSpecGroup.PREFIX_GLOBPathSpecGroup.DEFAULT
- Parameters:
group- The group to rank.- Returns:
- An integer representing relative precedence between
PathSpecGroups.
-
getKnownRoles
- Overrides:
getKnownRolesin classSecurityHandler
-