mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-03-31 04:18:31 +00:00
SEC-3056 - Fix JavaDoc errors.
Fixed JavaDoc errors accross multiple modules in order to make javadoc happy with Java 8.
This commit is contained in:
parent
7317c090cc
commit
ad1d858e2b
@ -83,14 +83,14 @@ import org.springframework.util.StringUtils;
|
||||
* Alternatively, you could have used a common superclass or interface for the
|
||||
* {@link #processDomainObjectClass} if both <code>BankAccount</code> and
|
||||
* <code>Customer</code> had common parents.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* If the principal does not have sufficient permissions, the voter will vote to deny
|
||||
* access.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* All comparisons and prefixes are case sensitive.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @author Ben Alex
|
||||
*/
|
||||
|
@ -58,7 +58,7 @@ public abstract class SecurityConfigurerAdapter<O, B extends SecurityBuilder<O>>
|
||||
* Gets the {@link SecurityBuilder}. Cannot be null.
|
||||
*
|
||||
* @return the {@link SecurityBuilder}
|
||||
* @throw {@link IllegalStateException} if {@link SecurityBuilder} is null
|
||||
* @throws IllegalStateException if {@link SecurityBuilder} is null
|
||||
*/
|
||||
protected final B getBuilder() {
|
||||
if (securityBuilder == null) {
|
||||
|
@ -36,9 +36,10 @@ public interface ProviderManagerBuilder<B extends ProviderManagerBuilder<B>> ext
|
||||
* customizations must be done externally and the {@link ProviderManagerBuilder} is
|
||||
* returned immediately.
|
||||
*
|
||||
* Note that an Exception is thrown if an error occurs when adding the {@link AuthenticationProvider}.
|
||||
*
|
||||
* @return a {@link ProviderManagerBuilder} to allow further authentication to be
|
||||
* provided to the {@link ProviderManagerBuilder}
|
||||
* @throws Exception if an error occurs when adding the {@link AuthenticationProvider}
|
||||
*/
|
||||
B authenticationProvider(AuthenticationProvider authenticationProvider);
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ public class AuthenticationManagerBuilder
|
||||
|
||||
/**
|
||||
* Creates a new instance
|
||||
* @param the {@link ObjectPostProcessor} instance to use.
|
||||
* @param objectPostProcessor the {@link ObjectPostProcessor} instance to use.
|
||||
*/
|
||||
public AuthenticationManagerBuilder(ObjectPostProcessor<Object> objectPostProcessor) {
|
||||
super(objectPostProcessor, true);
|
||||
@ -196,7 +196,6 @@ public class AuthenticationManagerBuilder
|
||||
* <p>
|
||||
* This method <b>does NOT</b> ensure that a {@link UserDetailsService} is available
|
||||
* for the {@link #getDefaultUserDetailsService()} method.
|
||||
* </p>
|
||||
*
|
||||
* @return a {@link LdapAuthenticationProviderConfigurer} to allow customization of
|
||||
* the LDAP authentication
|
||||
@ -216,11 +215,11 @@ public class AuthenticationManagerBuilder
|
||||
* <p>
|
||||
* This method <b>does NOT</b> ensure that the {@link UserDetailsService} is available
|
||||
* for the {@link #getDefaultUserDetailsService()} method.
|
||||
* </p>
|
||||
*
|
||||
* Note that an {@link Exception} might be thrown if an error occurs when adding the {@link AuthenticationProvider}.
|
||||
*
|
||||
* @return a {@link AuthenticationManagerBuilder} to allow further authentication to
|
||||
* be provided to the {@link AuthenticationManagerBuilder}
|
||||
* @throws Exception if an error occurs when adding the {@link AuthenticationProvider}
|
||||
*/
|
||||
public AuthenticationManagerBuilder authenticationProvider(
|
||||
AuthenticationProvider authenticationProvider) {
|
||||
|
@ -27,7 +27,7 @@ import org.springframework.security.provisioning.InMemoryUserDetailsManager;
|
||||
* to have in memory authentication. It also allows easily adding users to the in memory
|
||||
* authentication.
|
||||
*
|
||||
* @param <B> the type of the {@link SecurityBuilder} that is being configured
|
||||
* @param <B> the type of the {@link ProviderManagerBuilder} that is being configured
|
||||
*
|
||||
* @author Rob Winch
|
||||
* @since 3.2
|
||||
|
@ -38,7 +38,6 @@ import org.springframework.security.provisioning.JdbcUserDetailsManager;
|
||||
* <p>
|
||||
* The only required method is the {@link #dataSource(javax.sql.DataSource)} all other
|
||||
* methods have reasonable defaults.
|
||||
* </p>
|
||||
*
|
||||
* @param <B> the type of the {@link ProviderManagerBuilder} that is being configured
|
||||
*
|
||||
@ -82,7 +81,7 @@ public class JdbcUserDetailsManagerConfigurer<B extends ProviderManagerBuilder<B
|
||||
* </code>
|
||||
* @param query The query to use for selecting the username, password, and if the user
|
||||
* is enabled by username. Must contain a single parameter for the username.
|
||||
* @return The {@link JdbcUserDetailsManagerRegistry} used for additional
|
||||
* @return The {@link JdbcUserDetailsManagerConfigurer} used for additional
|
||||
* customizations
|
||||
* @throws Exception
|
||||
*/
|
||||
@ -102,7 +101,7 @@ public class JdbcUserDetailsManagerConfigurer<B extends ProviderManagerBuilder<B
|
||||
*
|
||||
* @param query The query to use for selecting the username, authority by username.
|
||||
* Must contain a single parameter for the username.
|
||||
* @return The {@link JdbcUserDetailsManagerRegistry} used for additional
|
||||
* @return The {@link JdbcUserDetailsManagerConfigurer} used for additional
|
||||
* customizations
|
||||
* @throws Exception
|
||||
*/
|
||||
@ -126,7 +125,7 @@ public class JdbcUserDetailsManagerConfigurer<B extends ProviderManagerBuilder<B
|
||||
*
|
||||
* @param query The query to use for selecting the authorities by group. Must contain
|
||||
* a single parameter for the username.
|
||||
* @return The {@link JdbcUserDetailsManagerRegistry} used for additional
|
||||
* @return The {@link JdbcUserDetailsManagerConfigurer} used for additional
|
||||
* customizations
|
||||
* @throws Exception
|
||||
*/
|
||||
@ -181,7 +180,7 @@ public class JdbcUserDetailsManagerConfigurer<B extends ProviderManagerBuilder<B
|
||||
/**
|
||||
* Populates the default schema that allows users and authorities to be stored.
|
||||
*
|
||||
* @return The {@link JdbcUserDetailsManagerRegistry} used for additional
|
||||
* @return The {@link JdbcUserDetailsManagerConfigurer} used for additional
|
||||
* customizations
|
||||
*/
|
||||
public JdbcUserDetailsManagerConfigurer<B> withDefaultSchema() {
|
||||
|
@ -80,9 +80,6 @@ public class UserDetailsManagerConfigurer<B extends ProviderManagerBuilder<B>, C
|
||||
/**
|
||||
* Builds the user to be added. At minimum the username, password, and authorities
|
||||
* should provided. The remaining attributes have reasonable defaults.
|
||||
*
|
||||
* @param <T> the type of {@link UserDetailsManagerConfigurer} to return for chaining
|
||||
* methods.
|
||||
*/
|
||||
public class UserDetailsBuilder {
|
||||
private String username;
|
||||
@ -103,11 +100,10 @@ public class UserDetailsManagerConfigurer<B extends ProviderManagerBuilder<B>, C
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the {@link UserDetailsManagerRegistry} for method chaining (i.e. to add
|
||||
* Returns the {@link UserDetailsManagerConfigurer} for method chaining (i.e. to add
|
||||
* another user)
|
||||
*
|
||||
* @return the {@link UserDetailsManagerRegistry} for method chaining (i.e. to add
|
||||
* another user)
|
||||
* @return the {@link UserDetailsManagerConfigurer} for method chaining
|
||||
*/
|
||||
public C and() {
|
||||
return builder;
|
||||
|
@ -27,8 +27,8 @@ import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
* @author Rob Winch
|
||||
* @since 3.2
|
||||
*
|
||||
* @param <B> the type of the {@link SecurityBuilder}
|
||||
* @param <C> the {@link SecurityConfigurer} (or this)
|
||||
* @param <B> the type of the {@link ProviderManagerBuilder}
|
||||
* @param <C> the {@link UserDetailsServiceConfigurer} (or this)
|
||||
* @param <U> the type of UserDetailsService being used to allow for returning the
|
||||
* concrete UserDetailsService.
|
||||
*/
|
||||
|
@ -29,9 +29,8 @@ import org.springframework.security.config.annotation.configuration.ObjectPostPr
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Enables Spring Security global method security similar to the <global-method-security>
|
||||
* Enables Spring Security global method security similar to the <global-method-security>
|
||||
* xml support.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* More advanced configurations may wish to extend
|
||||
|
@ -142,11 +142,11 @@ public interface HttpSecurityBuilder<H extends HttpSecurityBuilder<H>> extends
|
||||
* <li>{@link LogoutFilter}</li>
|
||||
* <li>{@link X509AuthenticationFilter}</li>
|
||||
* <li>{@link AbstractPreAuthenticatedProcessingFilter}</li>
|
||||
* <li>{@link org.springframework.security.cas.web.CasAuthenticationFilter}</li>
|
||||
* <li><a href="{@docRoot}/org/springframework/security/cas/web/CasAuthenticationFilter.html">CasAuthenticationFilter</a></li>
|
||||
* <li>{@link UsernamePasswordAuthenticationFilter}</li>
|
||||
* <li>{@link ConcurrentSessionFilter}</li>
|
||||
* <li>{@link OpenIDAuthenticationFilter}</li>
|
||||
* <li>{@link DefaultLoginPageGeneratingFilter}</li>
|
||||
* <li>{@link org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter}</li>
|
||||
* <li>{@link ConcurrentSessionFilter}</li>
|
||||
* <li>{@link DigestAuthenticationFilter}</li>
|
||||
* <li>{@link BasicAuthenticationFilter}</li>
|
||||
|
@ -71,7 +71,7 @@ import org.springframework.security.web.util.matcher.RequestMatcher;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* A {@link HttpSecurity} is similar to Spring Security's XML <http> element in the
|
||||
* A {@link HttpSecurity} is similar to Spring Security's XML <http> element in the
|
||||
* namespace configuration. It allows configuring web based security for specific http
|
||||
* requests. By default it will be applied to all requests, but can be restricted using
|
||||
* {@link #requestMatcher(RequestMatcher)} or other similar methods.
|
||||
@ -283,7 +283,7 @@ public final class HttpSecurity extends
|
||||
*
|
||||
* @return
|
||||
* @throws Exception
|
||||
* @see {@link HeadersConfigurer}
|
||||
* @see HeadersConfigurer
|
||||
*/
|
||||
public HeadersConfigurer<HttpSecurity> headers() throws Exception {
|
||||
return getOrApply(new HeadersConfigurer<HttpSecurity>());
|
||||
@ -326,8 +326,8 @@ public final class HttpSecurity extends
|
||||
*
|
||||
* <pre>
|
||||
* <listener>
|
||||
* <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
|
||||
* </listener>
|
||||
* <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
|
||||
* </listener>
|
||||
* </pre>
|
||||
*
|
||||
* Alternatively,
|
||||
@ -378,7 +378,7 @@ public final class HttpSecurity extends
|
||||
*
|
||||
* @return the {@link PortMapperConfigurer} for further customizations
|
||||
* @throws Exception
|
||||
* @see {@link #requiresChannel()}
|
||||
* @see #requiresChannel()
|
||||
*/
|
||||
public PortMapperConfigurer<HttpSecurity> portMapper() throws Exception {
|
||||
return getOrApply(new PortMapperConfigurer<HttpSecurity>());
|
||||
@ -716,7 +716,7 @@ public final class HttpSecurity extends
|
||||
* {@link org.springframework.security.authentication.AnonymousAuthenticationToken}
|
||||
* and contain the role "ROLE_ANONYMOUS".
|
||||
*
|
||||
* <h2>Example Configuration</h2
|
||||
* <h2>Example Configuration</h2>
|
||||
*
|
||||
* The following configuration demonstrates how to specify that anonymous users should
|
||||
* contain the role "ROLE_ANON" instead.
|
||||
@ -908,6 +908,10 @@ public final class HttpSecurity extends
|
||||
return getOrApply(new HttpBasicConfigurer<HttpSecurity>());
|
||||
}
|
||||
|
||||
public <C> void setSharedObject(Class<C> sharedType, C object) {
|
||||
super.setSharedObject(sharedType, object);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void beforeConfigure() throws Exception {
|
||||
setSharedObject(AuthenticationManager.class, getAuthenticationRegistry().build());
|
||||
|
@ -29,7 +29,7 @@ import java.util.List;
|
||||
/**
|
||||
* Used to add a {@link RequestDataValueProcessor} for Spring MVC and Spring Security CSRF
|
||||
* integration. This configuration is added whenever {@link EnableWebMvc} is added by
|
||||
* {@link SpringWebMvcImportSelector} and the DispatcherServlet is present on the
|
||||
* <a href="{@docRoot}/org/springframework/security/config/annotation/web/configuration/SpringWebMvcImportSelector.html">SpringWebMvcImportSelector</a> and the DispatcherServlet is present on the
|
||||
* classpath. It also adds the {@link AuthenticationPrincipalArgumentResolver} as a
|
||||
* {@link HandlerMethodArgumentResolver}.
|
||||
*
|
||||
|
@ -262,7 +262,7 @@ public abstract class WebSecurityConfigurerAdapter implements
|
||||
* {@link #userDetailsService()} instead
|
||||
* @return
|
||||
* @throws Exception
|
||||
* @see {@link #userDetailsService()}
|
||||
* @see #userDetailsService()
|
||||
*/
|
||||
public UserDetailsService userDetailsServiceBean() throws Exception {
|
||||
AuthenticationManagerBuilder globalAuthBuilder = context
|
||||
@ -273,7 +273,7 @@ public abstract class WebSecurityConfigurerAdapter implements
|
||||
|
||||
/**
|
||||
* Allows modifying and accessing the {@link UserDetailsService} from
|
||||
* {@link #userDetailsServiceBean()()} without interacting with the
|
||||
* {@link #userDetailsServiceBean()} without interacting with the
|
||||
* {@link ApplicationContext}. Developers should override this method when changing
|
||||
* the instance of {@link #userDetailsServiceBean()}.
|
||||
*
|
||||
|
@ -178,8 +178,8 @@ public abstract class AbstractAuthenticationFilterConfigurer<B extends HttpSecur
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures the urls for {@link #failureUrl(String)} and
|
||||
* {@link #authenticationUrls(String)} are granted access to any user.
|
||||
* Ensures the urls for {@link #failureUrl(String)} as well as for the {@link HttpSecurityBuilder}, the
|
||||
* {@link #getLoginPage} and {@link #getLoginProcessingUrl} are granted access to any user.
|
||||
*
|
||||
* @param permitAll true to grant access to the URLs false to skip this step
|
||||
* @return the {@link FormLoginConfigurer} for additional customization
|
||||
|
@ -51,7 +51,7 @@ import org.springframework.security.web.access.intercept.FilterSecurityIntercept
|
||||
*
|
||||
* <ul>
|
||||
* <li>
|
||||
* {@link org.springframework.security.config.annotation.web.builders.HttpSecurity#getAuthenticationManager()}
|
||||
* {@link AuthenticationManager}
|
||||
* </li>
|
||||
* </ul>
|
||||
*
|
||||
@ -115,7 +115,7 @@ abstract class AbstractInterceptUrlConfigurer<C extends AbstractInterceptUrlConf
|
||||
|
||||
/**
|
||||
* Allows setting the {@link AccessDecisionManager}. If none is provided, a
|
||||
* default {@l AccessDecisionManager} is created.
|
||||
* default {@link AccessDecisionManager} is created.
|
||||
*
|
||||
* @param accessDecisionManager the {@link AccessDecisionManager} to use
|
||||
* @return the {@link AbstractInterceptUrlConfigurer} for further customization
|
||||
@ -162,7 +162,7 @@ abstract class AbstractInterceptUrlConfigurer<C extends AbstractInterceptUrlConf
|
||||
|
||||
/**
|
||||
* If currently null, creates a default {@link AccessDecisionManager} using
|
||||
* {@link #createDefaultAccessDecisionManager()}. Otherwise returns the
|
||||
* {@link #createDefaultAccessDecisionManager(HttpSecurityBuilder)}. Otherwise returns the
|
||||
* {@link AccessDecisionManager}.
|
||||
*
|
||||
* @param http the builder to use
|
||||
|
@ -84,7 +84,7 @@ public final class ExceptionHandlingConfigurer<H extends HttpSecurityBuilder<H>>
|
||||
* @param accessDeniedUrl the URL to the access denied page (i.e. /errors/401)
|
||||
* @return the {@link ExceptionHandlingConfigurer} for further customization
|
||||
* @see AccessDeniedHandlerImpl
|
||||
* @see {@link #accessDeniedHandler(org.springframework.security.web.access.AccessDeniedHandler)}
|
||||
* @see #accessDeniedHandler(org.springframework.security.web.access.AccessDeniedHandler)
|
||||
*/
|
||||
public ExceptionHandlingConfigurer<H> accessDeniedPage(String accessDeniedUrl) {
|
||||
AccessDeniedHandlerImpl accessDeniedHandler = new AccessDeniedHandlerImpl();
|
||||
|
@ -70,7 +70,7 @@ import org.springframework.util.StringUtils;
|
||||
*
|
||||
* @author Rob Winch
|
||||
* @since 3.2
|
||||
* @see {@link org.springframework.security.config.annotation.web.builders.HttpSecurity#authorizeRequests()}
|
||||
* @see org.springframework.security.config.annotation.web.builders.HttpSecurity#authorizeRequests()
|
||||
*/
|
||||
public final class ExpressionUrlAuthorizationConfigurer<H extends HttpSecurityBuilder<H>>
|
||||
extends
|
||||
@ -339,7 +339,7 @@ public final class ExpressionUrlAuthorizationConfigurer<H extends HttpSecurityBu
|
||||
*
|
||||
* @return the {@link ExpressionUrlAuthorizationConfigurer} for further
|
||||
* customization
|
||||
* @see {@link RememberMeConfigurer}
|
||||
* @see RememberMeConfigurer
|
||||
*/
|
||||
public ExpressionInterceptUrlRegistry rememberMe() {
|
||||
return access(rememberMe);
|
||||
@ -371,7 +371,7 @@ public final class ExpressionUrlAuthorizationConfigurer<H extends HttpSecurityBu
|
||||
*
|
||||
* @return the {@link ExpressionUrlAuthorizationConfigurer} for further
|
||||
* customization
|
||||
* @see {@link RememberMeConfigurer}
|
||||
* @see RememberMeConfigurer
|
||||
*/
|
||||
public ExpressionInterceptUrlRegistry fullyAuthenticated() {
|
||||
return access(fullyAuthenticated);
|
||||
|
@ -53,7 +53,7 @@ import org.springframework.security.web.util.matcher.RequestMatcher;
|
||||
* The following shared objects are used:
|
||||
*
|
||||
* <ul>
|
||||
* <li>{@link AuthenticationManager}</li>
|
||||
* <li>{@link org.springframework.security.authentication.AuthenticationManager}</li>
|
||||
* <li>{@link RememberMeServices} - is optionally used. See {@link RememberMeConfigurer}</li>
|
||||
* <li>{@link SessionAuthenticationStrategy} - is optionally used. See
|
||||
* {@link SessionManagementConfigurer}</li>
|
||||
|
@ -186,7 +186,7 @@ public class HeadersConfigurer<H extends HttpSecurityBuilder<H>> extends
|
||||
* X-XSS-Protection: 1
|
||||
* </pre>
|
||||
*
|
||||
* or if {@link #setBlock(boolean)} is true
|
||||
* or if {@link XXssProtectionHeaderWriter#setBlock(boolean)} of the given {@link XXssProtectionHeaderWriter} is true
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
|
@ -83,7 +83,7 @@ public final class HttpBasicConfigurer<B extends HttpSecurityBuilder<B>> extends
|
||||
/**
|
||||
* Creates a new instance
|
||||
* @throws Exception
|
||||
* @see {@link HttpSecurity#httpBasic()}
|
||||
* @see HttpSecurity#httpBasic()
|
||||
*/
|
||||
public HttpBasicConfigurer() throws Exception {
|
||||
realmName(DEFAULT_REALM);
|
||||
|
@ -187,7 +187,7 @@ public final class JeeConfigurer<H extends HttpSecurityBuilder<H>> extends
|
||||
* Populates a {@link PreAuthenticatedAuthenticationProvider} into
|
||||
* {@link HttpSecurity#authenticationProvider(org.springframework.security.authentication.AuthenticationProvider)}
|
||||
* and a {@link Http403ForbiddenEntryPoint} into
|
||||
* {@link HttpSecurity#authenticationEntryPoint(org.springframework.security.web.AuthenticationEntryPoint)}
|
||||
* {@link HttpSecurityBuilder#setSharedObject(Class, Object)}
|
||||
*
|
||||
* @see org.springframework.security.config.annotation.SecurityConfigurerAdapter#init(org.springframework.security.config.annotation.SecurityBuilder)
|
||||
*/
|
||||
|
@ -35,7 +35,7 @@ import org.springframework.security.web.util.matcher.RequestMatcher;
|
||||
|
||||
/**
|
||||
* Adds logout support. Other {@link SecurityConfigurer} instances may invoke
|
||||
* {@link #addLogoutHandler(LogoutHandler)} in the {@link #init(HttpSecurity)} phase.
|
||||
* {@link #addLogoutHandler(LogoutHandler)} in the {@link #init(HttpSecurityBuilder)} phase.
|
||||
*
|
||||
* <h2>Security Filters</h2>
|
||||
*
|
||||
|
@ -199,7 +199,7 @@ public final class OpenIDLoginConfigurer<H extends HttpSecurityBuilder<H>>
|
||||
* {@link HttpServletRequest} matches this URL the {@link OpenIDAuthenticationFilter}
|
||||
* will attempt to authenticate the request. The default is "/login/openid".
|
||||
*
|
||||
* @param loginUrl the URL used to perform authentication
|
||||
* @param loginProcessingUrl the URL used to perform authentication
|
||||
* @return the {@link OpenIDLoginConfigurer} for additional customization
|
||||
*/
|
||||
public OpenIDLoginConfigurer<H> loginProcessingUrl(String loginProcessingUrl) {
|
||||
|
@ -105,7 +105,7 @@ public class MessageSecurityMetadataSourceRegistry {
|
||||
* {@link MessageSecurityMetadataSourceRegistry#simpDestPathMatcher(PathMatcher)} .
|
||||
*
|
||||
* @return the {@link Constraint} that is associated to the {@link MessageMatcher}
|
||||
* @see {@link MessageSecurityMetadataSourceRegistry#simpDestPathMatcher(PathMatcher)}
|
||||
* @see MessageSecurityMetadataSourceRegistry#simpDestPathMatcher(PathMatcher)
|
||||
*/
|
||||
public Constraint simpDestMatchers(String... patterns) {
|
||||
return simpDestMatchers(null, patterns);
|
||||
@ -122,7 +122,7 @@ public class MessageSecurityMetadataSourceRegistry {
|
||||
* {@link MessageSecurityMetadataSourceRegistry#simpDestPathMatcher(PathMatcher)}.
|
||||
*
|
||||
* @return the {@link Constraint} that is associated to the {@link MessageMatcher}
|
||||
* @see {@link MessageSecurityMetadataSourceRegistry#simpDestPathMatcher(PathMatcher)}
|
||||
* @see MessageSecurityMetadataSourceRegistry#simpDestPathMatcher(PathMatcher)
|
||||
*/
|
||||
public Constraint simpMessageDestMatchers(String... patterns) {
|
||||
return simpDestMatchers(SimpMessageType.MESSAGE, patterns);
|
||||
@ -139,7 +139,7 @@ public class MessageSecurityMetadataSourceRegistry {
|
||||
* {@link MessageSecurityMetadataSourceRegistry#simpDestPathMatcher(PathMatcher)}.
|
||||
*
|
||||
* @return the {@link Constraint} that is associated to the {@link MessageMatcher}
|
||||
* @see {@link MessageSecurityMetadataSourceRegistry#simpDestPathMatcher(PathMatcher)}
|
||||
* @see MessageSecurityMetadataSourceRegistry#simpDestPathMatcher(PathMatcher)
|
||||
*/
|
||||
public Constraint simpSubscribeDestMatchers(String... patterns) {
|
||||
return simpDestMatchers(SimpMessageType.SUBSCRIBE, patterns);
|
||||
@ -353,7 +353,7 @@ public class MessageSecurityMetadataSourceRegistry {
|
||||
*
|
||||
* @return the {@link MessageSecurityMetadataSourceRegistry} for further
|
||||
* customization
|
||||
* @see {@link RememberMeConfigurer}
|
||||
* @see RememberMeConfigurer
|
||||
*/
|
||||
public MessageSecurityMetadataSourceRegistry rememberMe() {
|
||||
return access(rememberMe);
|
||||
@ -385,7 +385,7 @@ public class MessageSecurityMetadataSourceRegistry {
|
||||
*
|
||||
* @return the {@link MessageSecurityMetadataSourceRegistry} for further
|
||||
* customization
|
||||
* @see {@link RememberMeConfigurer}
|
||||
* @see RememberMeConfigurer
|
||||
*/
|
||||
public MessageSecurityMetadataSourceRegistry fullyAuthenticated() {
|
||||
return access(fullyAuthenticated);
|
||||
|
@ -30,7 +30,7 @@ import org.springframework.web.servlet.support.RequestDataValueProcessor;
|
||||
/**
|
||||
* Used to add a {@link RequestDataValueProcessor} for Spring MVC and Spring Security CSRF
|
||||
* integration. This configuration is added whenever {@link EnableWebMvc} is added by
|
||||
* {@link SpringWebMvcImportSelector} and the DispatcherServlet is present on the
|
||||
* <a href="{@docRoot}/org/springframework/security/config/annotation/web/configuration/SpringWebMvcImportSelector.html">SpringWebMvcImportSelector</a> and the DispatcherServlet is present on the
|
||||
* classpath. It also adds the {@link AuthenticationPrincipalArgumentResolver} as a
|
||||
* {@link HandlerMethodArgumentResolver}.
|
||||
*
|
||||
|
@ -25,7 +25,7 @@ import org.springframework.util.xml.DomUtils;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* Stateful parser for the <password-encoder> element.
|
||||
* Stateful parser for the <password-encoder> element.
|
||||
*
|
||||
* Will produce a PasswordEncoder and (optionally) a SaltSource.
|
||||
*
|
||||
|
@ -45,7 +45,7 @@ public interface SecurityExpressionOperations {
|
||||
* is converted may depend on the implementation settings.
|
||||
* </p>
|
||||
*
|
||||
* @param authority the authority to test (i.e. "USER")
|
||||
* @param role the authority to test (i.e. "USER")
|
||||
* @return true if the authority is found, else false
|
||||
*/
|
||||
boolean hasRole(String role);
|
||||
@ -62,7 +62,7 @@ public interface SecurityExpressionOperations {
|
||||
* is converted may depend on the implementation settings.
|
||||
* </p>
|
||||
*
|
||||
* @param authorities the authorities to test (i.e. "USER", "ADMIN")
|
||||
* @param roles the authorities to test (i.e. "USER", "ADMIN")
|
||||
* @return true if any of the authorities is found, else false
|
||||
*/
|
||||
boolean hasAnyRole(String... roles);
|
||||
|
@ -195,8 +195,8 @@ public class DefaultMethodSecurityExpressionHandler extends
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Sets the default prefix to be added to {@link #hasAnyRole(String...)} or
|
||||
* {@link #hasRole(String)}. For example, if hasRole("ADMIN") or hasRole("ROLE_ADMIN")
|
||||
* Sets the default prefix to be added to {@link org.springframework.security.access.expression.SecurityExpressionRoot#hasAnyRole(String...)} or
|
||||
* {@link org.springframework.security.access.expression.SecurityExpressionRoot#hasRole(String)}. For example, if hasRole("ADMIN") or hasRole("ROLE_ADMIN")
|
||||
* is passed in, then the role ROLE_ADMIN will be used when the defaultRolePrefix is
|
||||
* "ROLE_" (default).
|
||||
* </p>
|
||||
|
@ -32,7 +32,7 @@ public interface RoleHierarchy {
|
||||
* that are (transitively) reachable from them in the role hierarchy.
|
||||
* <p>
|
||||
* Example:<br>
|
||||
* Role hierarchy: ROLE_A > ROLE_B and ROLE_B > ROLE_C.<br>
|
||||
* Role hierarchy: ROLE_A > ROLE_B and ROLE_B > ROLE_C.<br>
|
||||
* Directly assigned authority: ROLE_A.<br>
|
||||
* Reachable authorities: ROLE_A, ROLE_B, ROLE_C.
|
||||
*
|
||||
|
@ -27,7 +27,7 @@ import java.util.regex.Pattern;
|
||||
/**
|
||||
* <p>
|
||||
* This class defines a role hierarchy for use with the UserDetailsServiceWrapper.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Here is an example configuration of a role hierarchy (hint: read the ">" sign as
|
||||
* "includes"):
|
||||
@ -41,19 +41,18 @@ import java.util.regex.Pattern;
|
||||
* </value>
|
||||
* </property>
|
||||
* </pre>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Explanation of the above:<br>
|
||||
* In effect every user with ROLE_A also has ROLE_B, ROLE_AUTHENTICATED and
|
||||
* ROLE_UNAUTHENTICATED;<br>
|
||||
* every user with ROLE_B also has ROLE_AUTHENTICATED and ROLE_UNAUTHENTICATED;<br>
|
||||
* every user with ROLE_AUTHENTICATED also has ROLE_UNAUTHENTICATED.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Hierarchical Roles will dramatically shorten your access rules (and also make the
|
||||
* access rules much more elegant).
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Consider this access rule for Spring Security's RoleVoter (background: every user that
|
||||
* is authenticated should be able to log out):<br>
|
||||
@ -62,10 +61,8 @@ import java.util.regex.Pattern;
|
||||
* /logout.html=ROLE_AUTHENTICATED<br>
|
||||
* In addition to shorter rules this will also make your access rules more readable and
|
||||
* your intentions clearer.
|
||||
* </p>
|
||||
*
|
||||
* @author Michael Mayr
|
||||
*
|
||||
*/
|
||||
public class RoleHierarchyImpl implements RoleHierarchy {
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
* security facilities provided for it by Spring Security.
|
||||
* For example, one secure object would be <code>MethodInvocation</code>,
|
||||
* whilst another would be HTTP
|
||||
* {@link org.springframework.security.web.FilterInvocation}. Note these are
|
||||
* {@code org.springframework.security.web.FilterInvocation}. Note these are
|
||||
* infrastructure objects and their design allows them to represent a large
|
||||
* variety of actual resources that might need to be secured, such as business
|
||||
* objects or HTTP request URLs.
|
||||
|
@ -107,7 +107,7 @@ public class MapBasedMethodSecurityMetadataSource extends
|
||||
|
||||
/**
|
||||
* Add configuration attributes for a secure method. Method names can end or start
|
||||
* with <code>*</code> for matching multiple methods.
|
||||
* with <code>*</code> for matching multiple methods.
|
||||
*
|
||||
* @param name type and method name, separated by a dot
|
||||
* @param attr the security attributes associated with the method
|
||||
@ -131,7 +131,7 @@ public class MapBasedMethodSecurityMetadataSource extends
|
||||
|
||||
/**
|
||||
* Add configuration attributes for a secure method. Mapped method names can end or
|
||||
* start with <code>*</code> for matching multiple methods.
|
||||
* start with <code>*</code> for matching multiple methods.
|
||||
*
|
||||
* @param javaType target interface or class the security configuration attribute
|
||||
* applies to
|
||||
|
@ -33,11 +33,11 @@ import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* Abstract implementation of {@link AccessDecisionManager}.
|
||||
* <p/>
|
||||
*
|
||||
* <p>
|
||||
* Handles configuration of a bean context defined list of {@link AccessDecisionVoter}s
|
||||
* and the access control behaviour if all voters abstain from voting (defaults to deny
|
||||
* access).
|
||||
* </p>
|
||||
*/
|
||||
public abstract class AbstractAccessDecisionManager implements AccessDecisionManager,
|
||||
InitializingBean, MessageSourceAware {
|
||||
@ -101,10 +101,9 @@ public abstract class AbstractAccessDecisionManager implements AccessDecisionMan
|
||||
/**
|
||||
* Iterates through all <code>AccessDecisionVoter</code>s and ensures each can support
|
||||
* the presented class.
|
||||
* <p/>
|
||||
* <p>
|
||||
* If one or more voters cannot support the presented class, <code>false</code> is
|
||||
* returned.
|
||||
* </p>
|
||||
*
|
||||
* @param clazz the type of secured object being presented
|
||||
* @return true if this type is supported
|
||||
|
@ -24,7 +24,7 @@ package org.springframework.security.authentication.encoding;
|
||||
* </p>
|
||||
* <p>
|
||||
* As SHA is a one-way hash, the salt can contain any characters. The default strength for
|
||||
* the SHA encoding is SHA-1. If you wish to use higher strengths use the argumented
|
||||
* the SHA encoding is SHA-1. If you wish to use higher strengths use the parametrised
|
||||
* constructor. {@link #ShaPasswordEncoder(int strength)}
|
||||
* </p>
|
||||
* <p>
|
||||
@ -32,7 +32,7 @@ package org.springframework.security.authentication.encoding;
|
||||
*
|
||||
* <pre>
|
||||
* <bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.ShaPasswordEncoder">
|
||||
* <constructor-arg value="256"/>
|
||||
* <constructor-arg value="256"/>
|
||||
* </bean>
|
||||
* </pre>
|
||||
*
|
||||
|
@ -51,7 +51,7 @@ import org.springframework.util.ObjectUtils;
|
||||
* This <code>AuthenticationProvider</code> is capable of validating
|
||||
* {@link org.springframework.security.authentication.UsernamePasswordAuthenticationToken}
|
||||
* requests contain the correct username and password.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* This implementation is backed by a <a
|
||||
* href="http://java.sun.com/j2se/1.5.0/docs/guide/security/jaas/JAASRefGuide.html"
|
||||
@ -68,7 +68,7 @@ import org.springframework.util.ObjectUtils;
|
||||
* in the ApplicationContext. When the LoginContext calls the internal CallbackHandler,
|
||||
* control is passed to each {@link JaasAuthenticationCallbackHandler} for each Callback
|
||||
* passed.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* {@link JaasAuthenticationCallbackHandler}s are passed to the
|
||||
* AbstractJaasAuthenticationProvider through the
|
||||
@ -84,8 +84,7 @@ import org.springframework.util.ObjectUtils;
|
||||
* </list>
|
||||
* </property>
|
||||
* </pre>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* After calling LoginContext.login(), the AbstractJaasAuthenticationProvider will
|
||||
* retrieve the returned Principals from the Subject
|
||||
@ -95,7 +94,7 @@ import org.springframework.util.ObjectUtils;
|
||||
* Authorization a role, it returns that role name from it's
|
||||
* {@link AuthorityGranter#grant(java.security.Principal)} method. The returned role will
|
||||
* be applied to the Authorization object as a {@link GrantedAuthority}.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* AuthorityGranters are configured in spring xml as follows...
|
||||
*
|
||||
|
@ -61,8 +61,7 @@ import java.security.Security;
|
||||
* <value>/WEB-INF/login.conf</value>
|
||||
* </property>
|
||||
* </pre>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* The loginContextName should coincide with a given index in the loginConfig specifed.
|
||||
* The loginConfig file used in the JUnit tests appears as the following...
|
||||
@ -80,7 +79,6 @@ import java.security.Security;
|
||||
* <property name="loginContextName"> <value>JAASTest</value> </property>
|
||||
* </pre>
|
||||
*
|
||||
* </p>
|
||||
* <p>
|
||||
* When using JAAS login modules as the authentication source, sometimes the <a href=
|
||||
* "http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/login/LoginContext.html"
|
||||
@ -91,7 +89,7 @@ import java.security.Security;
|
||||
* in the ApplicationContext. When the LoginContext calls the internal CallbackHandler,
|
||||
* control is passed to each {@link JaasAuthenticationCallbackHandler} for each Callback
|
||||
* passed.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* {@link JaasAuthenticationCallbackHandler}s are passed to the JaasAuthenticationProvider
|
||||
* through the
|
||||
@ -108,7 +106,6 @@ import java.security.Security;
|
||||
* </property>
|
||||
* </pre>
|
||||
*
|
||||
* </p>
|
||||
* <p>
|
||||
* After calling LoginContext.login(), the JaasAuthenticationProvider will retrieve the
|
||||
* returned Principals from the Subject (LoginContext.getSubject().getPrincipals). Each
|
||||
@ -130,10 +127,9 @@ import java.security.Security;
|
||||
* </pre>
|
||||
*
|
||||
* A configuration note: The JaasAuthenticationProvider uses the security properites
|
||||
* "e;login.config.url.X"e; to configure jaas. If you would like to customize the
|
||||
* "login.config.url.X" to configure jaas. If you would like to customize the
|
||||
* way Jaas gets configured, create a subclass of this and override the
|
||||
* {@link #configureJaas(Resource)} method.
|
||||
* </p>
|
||||
*
|
||||
* @author Ray Krueger
|
||||
* @author Rob Winch
|
||||
|
@ -55,7 +55,7 @@ public class DelegatingSecurityContextExecutorService extends
|
||||
* Creates a new {@link DelegatingSecurityContextExecutorService} that uses the
|
||||
* current {@link SecurityContext} from the {@link SecurityContextHolder}.
|
||||
*
|
||||
* @param delegateTaskExecutor the {@link TaskExecutor} to delegate to. Cannot be
|
||||
* @param delegate the {@link ExecutorService} to delegate to. Cannot be
|
||||
* null.
|
||||
*/
|
||||
public DelegatingSecurityContextExecutorService(ExecutorService delegate) {
|
||||
|
@ -70,13 +70,13 @@ public final class DelegatingSecurityContextRunnable implements Runnable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the SecurityContext should be transfered if {@link #call()}
|
||||
* Determines if the SecurityContext should be transfered if {@link #run()}
|
||||
* is invoked on the same {@link Thread} the
|
||||
* {@link DelegatingSecurityContextCallable} was created on.
|
||||
*
|
||||
* @param enableOnOriginalThread
|
||||
* if false (default), will only transfer the
|
||||
* {@link SecurityContext} if {@link #call()} is invoked on a
|
||||
* {@link SecurityContext} if {@link #run()} is invoked on a
|
||||
* different {@link Thread} than the
|
||||
* {@link DelegatingSecurityContextCallable} was created on.
|
||||
* @since 4.0.2
|
||||
|
@ -51,7 +51,7 @@ public final class DelegatingSecurityContextScheduledExecutorService extends
|
||||
* Creates a new {@link DelegatingSecurityContextScheduledExecutorService} that uses
|
||||
* the current {@link SecurityContext} from the {@link SecurityContextHolder}.
|
||||
*
|
||||
* @param delegateTaskExecutor the {@link TaskExecutor} to delegate to. Cannot be
|
||||
* @param delegate the {@link ScheduledExecutorService} to delegate to. Cannot be
|
||||
* null.
|
||||
*/
|
||||
public DelegatingSecurityContextScheduledExecutorService(
|
||||
|
@ -30,7 +30,9 @@ import org.springframework.security.core.Authentication;
|
||||
* @author Rob Winch
|
||||
* @since 4.0
|
||||
*
|
||||
* @see org.springframework.security.messaging.context.AuthenticationPrincipalArgumentResolver
|
||||
* See: <a href="{@docRoot}/org/springframework/security/messaging/context/AuthenticationPrincipalArgumentResolver.html">
|
||||
* AuthenticationPrincipalArgumentResolver
|
||||
* </a>
|
||||
*/
|
||||
@Target({ ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
|
@ -40,7 +40,7 @@ import org.springframework.util.ReflectionUtils;
|
||||
* <pre>
|
||||
* import org.springframework.security.access.method.P;
|
||||
*
|
||||
* @PostAuthorize("#to == returnObject.to")
|
||||
* {@code @PostAuthorize("#to == returnObject.to")}
|
||||
* public Message findMessageByTo(@P("to") String to);
|
||||
* </pre>
|
||||
*
|
||||
@ -70,7 +70,7 @@ import org.springframework.util.ReflectionUtils;
|
||||
* <pre>
|
||||
* import org.springframework.security.access.method.P;
|
||||
*
|
||||
* @PostAuthorize("#to == returnObject.to")
|
||||
* {@code @PostAuthorize("#to == returnObject.to")}
|
||||
* public Message findMessageByToAndFrom(@P("to") User to, User from);
|
||||
* </pre>
|
||||
*
|
||||
|
@ -32,9 +32,8 @@ import java.util.concurrent.CopyOnWriteArraySet;
|
||||
* SessionDestroyedEvent}s published in the Spring application context.
|
||||
* <p>
|
||||
* For this class to function correctly in a web application, it is important that you
|
||||
* register an {@link org.springframework.security.web.session.HttpSessionEventPublisher
|
||||
* HttpSessionEventPublisher} in the <tt>web.xml</tt> file so that this class is notified
|
||||
* of sessions that expire.
|
||||
* register an <a href="{@docRoot}/org/springframework/security/web/session/HttpSessionEventPublisher.html">HttpSessionEventPublisher</a>
|
||||
* in the <tt>web.xml</tt> file so that this class is notified of sessions that expire.
|
||||
*
|
||||
* @author Ben Alex
|
||||
* @author Luke Taylor
|
||||
|
@ -145,7 +145,7 @@ public class KeyBasedPersistenceTokenService implements TokenService, Initializi
|
||||
}
|
||||
|
||||
/**
|
||||
* @param pseudoRandomNumberBytes changes the number of bytes issued (must be >= 0;
|
||||
* @param pseudoRandomNumberBytes changes the number of bytes issued (must be >= 0;
|
||||
* defaults to 256)
|
||||
*/
|
||||
public void setPseudoRandomNumberBytes(int pseudoRandomNumberBytes) {
|
||||
|
@ -38,7 +38,7 @@ public interface TokenService {
|
||||
Token allocateToken(String extendedInformation);
|
||||
|
||||
/**
|
||||
* Permits verification the <{@link Token#getKey()} was issued by this
|
||||
* Permits verification the {@link Token#getKey()} was issued by this
|
||||
* <code>TokenService</code> and reconstructs the corresponding <code>Token</code>.
|
||||
*
|
||||
* @param key as obtained from {@link Token#getKey()} and created by this
|
||||
|
@ -47,7 +47,7 @@ import org.springframework.util.Assert;
|
||||
*
|
||||
* This table contains the login name, password and enabled status of the user.
|
||||
*
|
||||
* <table>
|
||||
* <table summary="The Users Table">
|
||||
* <tr>
|
||||
* <th>Column</th>
|
||||
* </tr>
|
||||
@ -64,7 +64,7 @@ import org.springframework.util.Assert;
|
||||
*
|
||||
* <h4>The Authorities Table</h4>
|
||||
*
|
||||
* <table>
|
||||
* <table summary="The Authorities Table">
|
||||
* <tr>
|
||||
* <th>Column</th>
|
||||
* </tr>
|
||||
|
@ -23,7 +23,7 @@ import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||
|
||||
/**
|
||||
* Used by {@link InMemoryDaoImpl} to temporarily store the attributes associated with a
|
||||
* Used by {@link org.springframework.security.provisioning.InMemoryUserDetailsManager} to temporarily store the attributes associated with a
|
||||
* user.
|
||||
*
|
||||
* @author Ben Alex
|
||||
@ -50,7 +50,7 @@ public class UserAttribute {
|
||||
/**
|
||||
* Set all authorities for this user.
|
||||
*
|
||||
* @param authorities {@link List} <{@link GrantedAuthority}>
|
||||
* @param authorities {@link List} <{@link GrantedAuthority}>
|
||||
* @since 1.1
|
||||
*/
|
||||
public void setAuthorities(List<GrantedAuthority> authorities) {
|
||||
@ -61,7 +61,7 @@ public class UserAttribute {
|
||||
* Set all authorities for this user from String values. It will create the necessary
|
||||
* {@link GrantedAuthority} objects.
|
||||
*
|
||||
* @param authoritiesAsStrings {@link List} <{@link String}>
|
||||
* @param authoritiesAsStrings {@link List} <{@link String}>
|
||||
* @since 1.1
|
||||
*/
|
||||
public void setAuthoritiesAsString(List<String> authoritiesAsStrings) {
|
||||
|
@ -45,7 +45,7 @@ public class DelegatingSecurityContextTaskExecutor extends
|
||||
* Creates a new {@link DelegatingSecurityContextTaskExecutor} that uses the current
|
||||
* {@link SecurityContext} from the {@link SecurityContextHolder}.
|
||||
*
|
||||
* @param delegateTaskExecutor the {@link TaskExecutor} to delegate to. Cannot be
|
||||
* @param delegate the {@link TaskExecutor} to delegate to. Cannot be
|
||||
* null.
|
||||
*/
|
||||
public DelegatingSecurityContextTaskExecutor(TaskExecutor delegate) {
|
||||
|
@ -31,25 +31,25 @@ import java.security.SecureRandom;
|
||||
* with a random salt, like this:
|
||||
* <p>
|
||||
* <code>
|
||||
* String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); <br />
|
||||
* String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); <br>
|
||||
* </code>
|
||||
* <p>
|
||||
* To check whether a plaintext password matches one that has been hashed previously, use
|
||||
* the checkpw method:
|
||||
* <p>
|
||||
* <code>
|
||||
* if (BCrypt.checkpw(candidate_password, stored_hash))<br />
|
||||
* System.out.println("It matches");<br />
|
||||
* else<br />
|
||||
* System.out.println("It does not match");<br />
|
||||
* if (BCrypt.checkpw(candidate_password, stored_hash))<br>
|
||||
* System.out.println("It matches");<br>
|
||||
* else<br>
|
||||
* System.out.println("It does not match");<br>
|
||||
* </code>
|
||||
* <p>
|
||||
* The gensalt() method takes an optional parameter (log_rounds) that determines the
|
||||
* computational complexity of the hashing:
|
||||
* <p>
|
||||
* <code>
|
||||
* String strong_salt = BCrypt.gensalt(10)<br />
|
||||
* String stronger_salt = BCrypt.gensalt(12)<br />
|
||||
* String strong_salt = BCrypt.gensalt(10)<br>
|
||||
* String stronger_salt = BCrypt.gensalt(12)<br>
|
||||
* </code>
|
||||
* <p>
|
||||
* The amount of work increases exponentially (2**log_rounds), so each increment is twice
|
||||
|
@ -29,41 +29,39 @@ import java.util.Map;
|
||||
* <p>
|
||||
* By defining this object as a Bean, Spring Security is exposed as SpEL expressions for
|
||||
* creating Spring Data queries.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* With Java based configuration, we can define the bean using the following:
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For example, if you return a UserDetails that extends the following User object:
|
||||
* </p>
|
||||
*
|
||||
* <pre>
|
||||
* @Entity
|
||||
* @Entity
|
||||
* public class User {
|
||||
* @GeneratedValue(strategy = GenerationType.AUTO)
|
||||
* @Id
|
||||
* @GeneratedValue(strategy = GenerationType.AUTO)
|
||||
* @Id
|
||||
* private Long id;
|
||||
*
|
||||
* ...
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
* And you have a Message object that looks like the following:
|
||||
* </p>
|
||||
*
|
||||
* <pre>
|
||||
* @Entity
|
||||
* @Entity
|
||||
* public class Message {
|
||||
* @Id
|
||||
* @GeneratedValue(strategy = GenerationType.AUTO)
|
||||
* @Id
|
||||
* @GeneratedValue(strategy = GenerationType.AUTO)
|
||||
* private Long id;
|
||||
*
|
||||
* @OneToOne
|
||||
* @OneToOne
|
||||
* private User to;
|
||||
*
|
||||
* ...
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* You can use the following {@code Query} annotation to search for only messages that are
|
||||
|
@ -40,7 +40,7 @@ public class DefaultSpringSecurityContextSource extends LdapContextSource {
|
||||
* you want to use more than one server for fail-over, rather use the
|
||||
* {@link #DefaultSpringSecurityContextSource(List, String)} constructor.
|
||||
*
|
||||
* @param providerUrl an LDAP URL of the form <code>ldap://localhost:389/base_dn<code>
|
||||
* @param providerUrl an LDAP URL of the form <code>ldap://localhost:389/base_dn</code>
|
||||
*/
|
||||
public DefaultSpringSecurityContextSource(String providerUrl) {
|
||||
Assert.hasLength(providerUrl, "An LDAP connection URL must be supplied.");
|
||||
|
@ -22,8 +22,7 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
* Obtains a user's information from the LDAP directory given a login name.
|
||||
* <p>
|
||||
* May be optionally used to configure the LDAP authentication implementation when a more
|
||||
* sophisticated approach is required than just using a simple username->DN mapping.
|
||||
* </p>
|
||||
* sophisticated approach is required than just using a simple username->DN mapping.
|
||||
*
|
||||
* @author Luke Taylor
|
||||
*/
|
||||
|
@ -75,15 +75,15 @@ import java.util.Set;
|
||||
*
|
||||
* <pre>
|
||||
* <bean id="ldapAuthoritiesPopulator"
|
||||
* class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator">
|
||||
* <constructor-arg ref="contextSource"/>
|
||||
* <constructor-arg value="ou=groups"/>
|
||||
* <property name="groupRoleAttribute" value="ou"/>
|
||||
* <!-- the following properties are shown with their default values -->
|
||||
* <property name="searchSubtree" value="false"/>
|
||||
* <property name="rolePrefix" value="ROLE_"/>
|
||||
* <property name="convertToUpperCase" value="true"/>
|
||||
* </bean>
|
||||
* class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator">
|
||||
* <constructor-arg ref="contextSource"/>
|
||||
* <constructor-arg value="ou=groups"/>
|
||||
* <property name="groupRoleAttribute" value="ou"/>
|
||||
* <!-- the following properties are shown with their default values -->
|
||||
* <property name="searchSubtree" value="false"/>
|
||||
* <property name="rolePrefix" value="ROLE_"/>
|
||||
* <property name="convertToUpperCase" value="true"/>
|
||||
* </bean>
|
||||
* </pre>
|
||||
*
|
||||
* A search for roles for user "uid=ben,ou=people,dc=springframework,dc=org" would return
|
||||
@ -292,7 +292,7 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
|
||||
|
||||
/**
|
||||
* Sets the prefix which will be prepended to the values loaded from the directory.
|
||||
* Defaults to "ROLE_" for compatibility with <tt>RoleVoter/tt>.
|
||||
* Defaults to "ROLE_" for compatibility with <tt>RoleVoter</tt>.
|
||||
*/
|
||||
public void setRolePrefix(String rolePrefix) {
|
||||
Assert.notNull(rolePrefix, "rolePrefix must not be null");
|
||||
@ -326,7 +326,7 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
|
||||
* Returns the current LDAP template. Method available so that classes extending this
|
||||
* can override the template used
|
||||
* @return the LDAP template
|
||||
* @see {@link org.springframework.security.ldap.SpringSecurityLdapTemplate}
|
||||
* @see org.springframework.security.ldap.SpringSecurityLdapTemplate
|
||||
*/
|
||||
protected SpringSecurityLdapTemplate getLdapTemplate() {
|
||||
return ldapTemplate;
|
||||
@ -336,7 +336,7 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
|
||||
* Returns the attribute name of the LDAP attribute that will be mapped to the role
|
||||
* name Method available so that classes extending this can override
|
||||
* @return the attribute name used for role mapping
|
||||
* @see {@link #setGroupRoleAttribute(String)}
|
||||
* @see #setGroupRoleAttribute(String)
|
||||
*/
|
||||
protected final String getGroupRoleAttribute() {
|
||||
return groupRoleAttribute;
|
||||
@ -346,7 +346,7 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
|
||||
* Returns the search filter configured for this populator Method available so that
|
||||
* classes extending this can override
|
||||
* @return the search filter
|
||||
* @see {@link #setGroupSearchFilter(String)}
|
||||
* @see #setGroupSearchFilter(String)
|
||||
*/
|
||||
protected final String getGroupSearchFilter() {
|
||||
return groupSearchFilter;
|
||||
@ -356,7 +356,7 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
|
||||
* Returns the role prefix used by this populator Method available so that classes
|
||||
* extending this can override
|
||||
* @return the role prefix
|
||||
* @see {@link #setRolePrefix(String)}
|
||||
* @see #setRolePrefix(String)
|
||||
*/
|
||||
protected final String getRolePrefix() {
|
||||
return rolePrefix;
|
||||
@ -366,7 +366,7 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
|
||||
* Returns true if role names are converted to uppercase Method available so that
|
||||
* classes extending this can override
|
||||
* @return true if role names are converted to uppercase.
|
||||
* @see {@link #setConvertToUpperCase(boolean)}
|
||||
* @see #setConvertToUpperCase(boolean)
|
||||
*/
|
||||
protected final boolean isConvertToUpperCase() {
|
||||
return convertToUpperCase;
|
||||
@ -376,7 +376,7 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
|
||||
* Returns the default role Method available so that classes extending this can
|
||||
* override
|
||||
* @return the default role used
|
||||
* @see {@link #setDefaultRole(String)}
|
||||
* @see #setDefaultRole(String)
|
||||
*/
|
||||
private GrantedAuthority getDefaultRole() {
|
||||
return defaultRole;
|
||||
|
@ -110,9 +110,6 @@ import java.util.*;
|
||||
* ou: jdeveloper
|
||||
* member: uid=scaladude,ou=people,dc=springframework,dc=org *
|
||||
* </pre>
|
||||
*
|
||||
* </pre>
|
||||
* </p>
|
||||
*
|
||||
* @author Filip Hanik
|
||||
*/
|
||||
|
@ -45,7 +45,7 @@ public final class ExpressionBasedMessageSecurityMetadataSourceFactory {
|
||||
* For example:
|
||||
*
|
||||
* <pre>
|
||||
* LinkedHashMap<MessageMatcher<?> matcherToExpression = new LinkedHashMap<MessageMatcher<Object>();
|
||||
* LinkedHashMap<MessageMatcher<?>,String> matcherToExpression = new LinkedHashMap<MessageMatcher<Object>,String>();
|
||||
* matcherToExpression.put(new SimDestinationMessageMatcher("/public/**"), "permitAll");
|
||||
* matcherToExpression.put(new SimDestinationMessageMatcher("/admin/**"), "hasRole('ROLE_ADMIN')");
|
||||
* matcherToExpression.put(new SimDestinationMessageMatcher("/**"), "authenticated");
|
||||
@ -57,11 +57,9 @@ public final class ExpressionBasedMessageSecurityMetadataSourceFactory {
|
||||
* If our destination is "/public/hello", it would match on "/public/**" and on "/**".
|
||||
* However, only "/public/**" would be used since it is the first entry. That means
|
||||
* that a destination of "/public/hello" will be mapped to "permitAll".
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For a complete listing of expressions see {@link MessageSecurityExpressionRoot}
|
||||
* </p>
|
||||
*
|
||||
* @param matcherToExpression an ordered mapping of {@link MessageMatcher} to Strings
|
||||
* that are turned into an Expression using
|
||||
@ -81,7 +79,7 @@ public final class ExpressionBasedMessageSecurityMetadataSourceFactory {
|
||||
* For example:
|
||||
*
|
||||
* <pre>
|
||||
* LinkedHashMap<MessageMatcher<?> matcherToExpression = new LinkedHashMap<MessageMatcher<Object>();
|
||||
* LinkedHashMap<MessageMatcher<?>,String> matcherToExpression = new LinkedHashMap<MessageMatcher<Object>,String>();
|
||||
* matcherToExpression.put(new SimDestinationMessageMatcher("/public/**"), "permitAll");
|
||||
* matcherToExpression.put(new SimDestinationMessageMatcher("/admin/**"), "hasRole('ROLE_ADMIN')");
|
||||
* matcherToExpression.put(new SimDestinationMessageMatcher("/**"), "authenticated");
|
||||
|
@ -30,12 +30,10 @@ import org.springframework.util.Assert;
|
||||
* <p>
|
||||
* The <code>SecurityMetadataSource</code> required by this security interceptor is of
|
||||
* type {@link MessageSecurityMetadataSource}.
|
||||
* </p>
|
||||
* <p>
|
||||
* Refer to {@link AbstractSecurityInterceptor} for details on the workflow.
|
||||
* </p>
|
||||
*
|
||||
* @see 4.0
|
||||
* @since 4.0
|
||||
* @author Rob Winch
|
||||
*/
|
||||
public final class ChannelSecurityInterceptor extends AbstractSecurityInterceptor
|
||||
|
@ -32,12 +32,13 @@ import org.springframework.stereotype.Controller;
|
||||
* {@link Controller}:
|
||||
*
|
||||
* <pre>
|
||||
* @Controller
|
||||
* @Controller
|
||||
* public class MyController {
|
||||
* @MessageMapping("/im")
|
||||
* @MessageMapping("/im")
|
||||
* public void im(@AuthenticationPrincipal CustomUser customUser) {
|
||||
* // do something with CustomUser
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
@ -47,11 +48,9 @@ import org.springframework.stereotype.Controller;
|
||||
* match, null will be returned unless
|
||||
* {@link AuthenticationPrincipal#errorOnInvalidType()} is true in which case a
|
||||
* {@link ClassCastException} will be thrown.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Alternatively, users can create a custom meta annotation as shown below:
|
||||
* </p>
|
||||
*
|
||||
* <pre>
|
||||
* @Target({ ElementType.PARAMETER })
|
||||
@ -63,15 +62,15 @@ import org.springframework.stereotype.Controller;
|
||||
*
|
||||
* <p>
|
||||
* The custom annotation can then be used instead. For example:
|
||||
* </p>
|
||||
*
|
||||
* <pre>
|
||||
* @Controller
|
||||
* @Controller
|
||||
* public class MyController {
|
||||
* @MessageMapping("/im")
|
||||
* @MessageMapping("/im")
|
||||
* public void im(@CurrentUser CustomUser customUser) {
|
||||
* // do something with CustomUser
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* @author Rob Winch
|
||||
|
@ -55,7 +55,6 @@ public final class SimpDestinationMessageMatcher implements MessageMatcher<Objec
|
||||
* Creates a new instance with the specified pattern, null {@link SimpMessageType}
|
||||
* (matches any type), and a {@link AntPathMatcher} created from the default
|
||||
* constructor.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* The mapping matches destinations despite the using the following rules:
|
||||
@ -87,7 +86,6 @@ public final class SimpDestinationMessageMatcher implements MessageMatcher<Objec
|
||||
/**
|
||||
* <p>
|
||||
* Creates a new instance with the specified pattern and {@link PathMatcher}.
|
||||
* </p>
|
||||
*
|
||||
* @param pattern the pattern to use
|
||||
* @param pathMatcher the {@link PathMatcher} to use.
|
||||
@ -100,7 +98,6 @@ public final class SimpDestinationMessageMatcher implements MessageMatcher<Objec
|
||||
* <p>
|
||||
* Creates a new instance with the specified pattern, {@link SimpMessageType}, and
|
||||
* {@link PathMatcher}.
|
||||
* </p>
|
||||
*
|
||||
* @param pattern the pattern to use
|
||||
* @param type the {@link SimpMessageType} to match on or null if any
|
||||
@ -155,10 +152,9 @@ public final class SimpDestinationMessageMatcher implements MessageMatcher<Objec
|
||||
* <p>
|
||||
* Creates a new instance with the specified pattern,
|
||||
* {@code SimpMessageType.SUBSCRIBE}, and {@link PathMatcher}.
|
||||
* </p>
|
||||
*
|
||||
* @param pattern the pattern to use
|
||||
* @param pathMatcher the {@link PathMatcher} to use.
|
||||
* @param matcher the {@link PathMatcher} to use.
|
||||
*/
|
||||
public static SimpDestinationMessageMatcher createSubscribeMatcher(String pattern,
|
||||
PathMatcher matcher) {
|
||||
@ -170,10 +166,9 @@ public final class SimpDestinationMessageMatcher implements MessageMatcher<Objec
|
||||
* <p>
|
||||
* Creates a new instance with the specified pattern, {@code SimpMessageType.MESSAGE},
|
||||
* and {@link PathMatcher}.
|
||||
* </p>
|
||||
*
|
||||
* @param pattern the pattern to use
|
||||
* @param pathMatcher the {@link PathMatcher} to use.
|
||||
* @param matcher the {@link PathMatcher} to use.
|
||||
*/
|
||||
public static SimpDestinationMessageMatcher createMessageMatcher(String pattern,
|
||||
PathMatcher matcher) {
|
||||
|
@ -246,17 +246,17 @@ public class OpenIDAuthenticationFilter extends AbstractAuthenticationProcessing
|
||||
|
||||
/**
|
||||
* Maps the <tt>return_to url</tt> to a realm, for example:
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* http://www.example.com/login/openid -> http://www.example.com/realm</tt>
|
||||
* http://www.example.com/login/openid -> http://www.example.com/realm
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* If no mapping is provided then the returnToUrl will be parsed to extract the
|
||||
* protocol, hostname and port followed by a trailing slash. This means that
|
||||
* <tt>http://www.example.com/login/openid</tt> will automatically become
|
||||
* <tt>http://www.example.com:80/</tt>
|
||||
*
|
||||
* @param realmMapping containing returnToUrl -> realm mappings
|
||||
* @param realmMapping containing returnToUrl -> realm mappings
|
||||
*/
|
||||
public void setRealmMapping(Map<String, String> realmMapping) {
|
||||
this.realmMapping = realmMapping;
|
||||
|
@ -39,12 +39,11 @@ public interface DnsResolver {
|
||||
/**
|
||||
* <p>
|
||||
* Resolves the host name for the specified service in the specified domain
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* For example, if you need the host name for an LDAP server running in the domain
|
||||
* springsource.com, you would call <b>resolveServiceEntry("ldap",
|
||||
* "springsource.com")</b>.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* The DNS server needs to provide the service records for this, in the example above,
|
||||
@ -59,7 +58,6 @@ public interface DnsResolver {
|
||||
* priority, it will return the one with the highest weight. You will find more
|
||||
* informatione about DNS service records at <a
|
||||
* href="http://en.wikipedia.org/wiki/SRV_record">Wikipedia</a>.
|
||||
* </p>
|
||||
*
|
||||
* @param serviceType The service type you are searching for, e.g. ldap, kerberos, ...
|
||||
* @param domain The domain, in which you are searching for the service
|
||||
|
@ -41,7 +41,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
* {@link HttpServletRequest#authenticate(HttpServletResponse)}</li>
|
||||
* <li>{@link #login(HttpServletRequest, HttpServletResponse, LoginForm, BindingResult)} -
|
||||
* Integration with {@link HttpServletRequest#login(String, String)}</li>
|
||||
* <li>{@link #logout(HttpServletRequest, HttpServletResponse)} - Integration with
|
||||
* <li>{@link #logout(HttpServletRequest, HttpServletResponse, RedirectAttributes)} - Integration with
|
||||
* {@link HttpServletRequest#logout()}</li>
|
||||
* <li>{@link #remoteUser(HttpServletRequest)} - Integration with
|
||||
* {@link HttpServletRequest#getRemoteUser()}</li>
|
||||
|
@ -45,7 +45,7 @@ import org.springframework.web.context.support.WebApplicationContextUtils;
|
||||
* technology (JSP, Facelets). It treats tag attributes as simple strings rather than
|
||||
* strings that may contain expressions with the exception of the "access" attribute,
|
||||
* which is always expected to contain a Spring EL expression.
|
||||
* <p/>
|
||||
* <p>
|
||||
* Subclasses are expected to extract tag attribute values from the specific rendering
|
||||
* technology, evaluate them as expressions if necessary, and set the String-based
|
||||
* attributes of this class.
|
||||
|
@ -40,9 +40,7 @@ import org.springframework.test.web.servlet.MockMvc;
|
||||
* <li>The {@link SecurityContext} created with be that of
|
||||
* {@link SecurityContextHolder#createEmptyContext()}</li>
|
||||
* <li>It will be populated with an {@link UsernamePasswordAuthenticationToken} that uses
|
||||
* the username of either {@link #value()} or {@link #username()},
|
||||
* {@link GrantedAuthority} that are specified by {@link #roles()}, and a password
|
||||
* specified by {@link #password()}.
|
||||
* the username of {@link #value()}.
|
||||
* </ul>
|
||||
*
|
||||
* @see WithMockUser
|
||||
|
@ -168,7 +168,7 @@ public final class SecurityMockMvcRequestPostProcessors {
|
||||
* for the {@link Authentication#getPrincipal()} and a custom {@link UserDetails}. All
|
||||
* details are declarative and do not require that the user actually exists.
|
||||
*
|
||||
* @param user the UserDetails to populate
|
||||
* @param authentication the Authentication to populate
|
||||
* @return the {@link RequestPostProcessor} to use
|
||||
*/
|
||||
public static RequestPostProcessor authentication(Authentication authentication) {
|
||||
@ -635,10 +635,10 @@ public final class SecurityMockMvcRequestPostProcessors {
|
||||
* {@link #authorities(GrantedAuthority...)}, but just not as flexible.
|
||||
*
|
||||
* @param roles The roles to populate. Note that if the role does not start with
|
||||
* {@link #rolePrefix(String)} it will automatically be prepended. This means by
|
||||
* {@link #ROLE_PREFIX} it will automatically be prepended. This means by
|
||||
* default {@code roles("ROLE_USER")} and {@code roles("USER")} are equivalent.
|
||||
* @see #authorities(GrantedAuthority...)
|
||||
* @see #rolePrefix(String)
|
||||
* @see #ROLE_PREFIX
|
||||
* @return the UserRequestPostProcessor for further customizations
|
||||
*/
|
||||
public UserRequestPostProcessor roles(String... roles) {
|
||||
|
@ -202,7 +202,7 @@ public final class SecurityMockMvcResultMatchers {
|
||||
/**
|
||||
* Specifies the {@link Authentication#getAuthorities()}
|
||||
*
|
||||
* @param expected the roles. Each value is automatically prefixed with "ROLE_"
|
||||
* @param roles the roles. Each value is automatically prefixed with "ROLE_"
|
||||
* @return the {@link AuthenticatedMatcher} for further customization
|
||||
*/
|
||||
public AuthenticatedMatcher withRoles(String... roles) {
|
||||
|
@ -69,8 +69,6 @@ public abstract class WebTestUtils {
|
||||
* @param request the {@link HttpServletRequest} to obtain the
|
||||
* {@link SecurityContextRepository}
|
||||
* @param securityContextRepository the {@link SecurityContextRepository} to set
|
||||
* @return the {@link SecurityContextRepository} for the specified
|
||||
* {@link HttpServletRequest}
|
||||
*/
|
||||
public static void setSecurityContextRepository(HttpServletRequest request,
|
||||
SecurityContextRepository securityContextRepository) {
|
||||
|
@ -59,14 +59,14 @@ import java.util.*;
|
||||
* requests which match the pattern. An example configuration might look like this:
|
||||
*
|
||||
* <pre>
|
||||
* <bean id="myfilterChainProxy" class="org.springframework.security.util.FilterChainProxy">
|
||||
* <constructor-arg>
|
||||
* <util:list>
|
||||
* <security:filter-chain pattern="/do/not/filter*" filters="none"/>
|
||||
* <security:filter-chain pattern="/**" filters="filter1,filter2,filter3"/>
|
||||
* </util:list>
|
||||
* </constructor-arg>
|
||||
* </bean>
|
||||
* <bean id="myfilterChainProxy" class="org.springframework.security.util.FilterChainProxy">
|
||||
* <constructor-arg>
|
||||
* <util:list>
|
||||
* <security:filter-chain pattern="/do/not/filter*" filters="none"/>
|
||||
* <security:filter-chain pattern="/**" filters="filter1,filter2,filter3"/>
|
||||
* </util:list>
|
||||
* </constructor-arg>
|
||||
* </bean>
|
||||
* </pre>
|
||||
*
|
||||
* The names "filter1", "filter2", "filter3" should be the bean names of {@code Filter}
|
||||
|
@ -50,7 +50,7 @@ public class PortMapperImpl implements PortMapper {
|
||||
// ========================================================================================================
|
||||
|
||||
/**
|
||||
* Returns the translated (Integer -> Integer) version of the original port mapping
|
||||
* Returns the translated (Integer -> Integer) version of the original port mapping
|
||||
* specified via setHttpsPortMapping()
|
||||
*/
|
||||
public Map<Integer, Integer> getTranslatedPortMappings() {
|
||||
@ -77,12 +77,12 @@ public class PortMapperImpl implements PortMapper {
|
||||
* like this:
|
||||
*
|
||||
* <pre>
|
||||
* <property name="portMappings">
|
||||
* <map>
|
||||
* <entry key="80"><value>443</value></entry>
|
||||
* <entry key="8080"><value>8443</value></entry>
|
||||
* </map>
|
||||
* </property>
|
||||
* <property name="portMappings">
|
||||
* <map>
|
||||
* <entry key="80"><value>443</value></entry>
|
||||
* <entry key="8080"><value>8443</value></entry>
|
||||
* </map>
|
||||
* </property>
|
||||
* </pre>
|
||||
*
|
||||
* @param newMappings A Map consisting of String keys and String values, where for
|
||||
|
@ -50,30 +50,30 @@ import org.springframework.web.filter.GenericFilterBean;
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* <bean id="channelProcessingFilter" class="org.springframework.security.web.access.channel.ChannelProcessingFilter">
|
||||
* <property name="channelDecisionManager" ref="channelDecisionManager"/>
|
||||
* <property name="securityMetadataSource">
|
||||
* <security:filter-security-metadata-source request-matcher="regex">
|
||||
* <security:intercept-url pattern="\A/secure/.*\Z" access="REQUIRES_SECURE_CHANNEL"/>
|
||||
* <security:intercept-url pattern="\A/login.jsp.*\Z" access="REQUIRES_SECURE_CHANNEL"/>
|
||||
* <security:intercept-url pattern="\A/.*\Z" access="ANY_CHANNEL"/>
|
||||
* </security:filter-security-metadata-source>
|
||||
* </property>
|
||||
* </bean>
|
||||
* <bean id="channelProcessingFilter" class="org.springframework.security.web.access.channel.ChannelProcessingFilter">
|
||||
* <property name="channelDecisionManager" ref="channelDecisionManager"/>
|
||||
* <property name="securityMetadataSource">
|
||||
* <security:filter-security-metadata-source request-matcher="regex">
|
||||
* <security:intercept-url pattern="\A/secure/.*\Z" access="REQUIRES_SECURE_CHANNEL"/>
|
||||
* <security:intercept-url pattern="\A/login.jsp.*\Z" access="REQUIRES_SECURE_CHANNEL"/>
|
||||
* <security:intercept-url pattern="\A/.*\Z" access="ANY_CHANNEL"/>
|
||||
* </security:filter-security-metadata-source>
|
||||
* </property>
|
||||
* </bean>
|
||||
*
|
||||
* <bean id="channelDecisionManager" class="org.springframework.security.web.access.channel.ChannelDecisionManagerImpl">
|
||||
* <property name="channelProcessors">
|
||||
* <list>
|
||||
* <ref bean="secureChannelProcessor"/>
|
||||
* <ref bean="insecureChannelProcessor"/>
|
||||
* </list>
|
||||
* </property>
|
||||
* </bean>
|
||||
* <bean id="channelDecisionManager" class="org.springframework.security.web.access.channel.ChannelDecisionManagerImpl">
|
||||
* <property name="channelProcessors">
|
||||
* <list>
|
||||
* <ref bean="secureChannelProcessor"/>
|
||||
* <ref bean="insecureChannelProcessor"/>
|
||||
* </list>
|
||||
* </property>
|
||||
* </bean>
|
||||
*
|
||||
* <bean id="secureChannelProcessor"
|
||||
* class="org.springframework.security.web.access.channel.SecureChannelProcessor"/>
|
||||
* class="org.springframework.security.web.access.channel.SecureChannelProcessor"/>
|
||||
* <bean id="insecureChannelProcessor"
|
||||
* class="org.springframework.security.web.access.channel.InsecureChannelProcessor"/>
|
||||
* class="org.springframework.security.web.access.channel.InsecureChannelProcessor"/>
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -46,8 +46,8 @@ public class DefaultWebSecurityExpressionHandler extends
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Sets the default prefix to be added to {@link #hasAnyRole(String...)} or
|
||||
* {@link #hasRole(String)}. For example, if hasRole("ADMIN") or hasRole("ROLE_ADMIN")
|
||||
* Sets the default prefix to be added to {@link org.springframework.security.access.expression.SecurityExpressionRoot#hasAnyRole(String...)} or
|
||||
* {@link org.springframework.security.access.expression.SecurityExpressionRoot#hasRole(String)}. For example, if hasRole("ADMIN") or hasRole("ROLE_ADMIN")
|
||||
* is passed in, then the role ROLE_ADMIN will be used when the defaultRolePrefix is
|
||||
* "ROLE_" (default).
|
||||
* </p>
|
||||
|
@ -10,15 +10,14 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.web.access.ExceptionTranslationFilter;
|
||||
import org.springframework.security.web.savedrequest.HttpSessionRequestCache;
|
||||
import org.springframework.security.web.savedrequest.RequestCache;
|
||||
import org.springframework.security.web.savedrequest.SavedRequest;
|
||||
import org.springframework.security.web.savedrequest.DefaultSavedRequest;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.security.web.savedrequest.SavedRequest;
|
||||
import org.springframework.security.web.savedrequest.RequestCache;
|
||||
import org.springframework.security.web.savedrequest.HttpSessionRequestCache;
|
||||
|
||||
/**
|
||||
* An authentication success strategy which can make use of the
|
||||
* {@link DefaultSavedRequest} which may have been stored in the session by the
|
||||
* {@link org.springframework.security.web.savedrequest.DefaultSavedRequest} which may have been stored in the session by the
|
||||
* {@link ExceptionTranslationFilter}. When such a request is intercepted and requires
|
||||
* authentication, the request data is stored to record the original destination before
|
||||
* the authentication process commenced, and to allow the request to be reconstructed when
|
||||
@ -36,15 +35,15 @@ import org.springframework.util.StringUtils;
|
||||
* If the {@code targetUrlParameter} has been set on the request, the value will be used
|
||||
* as the destination. Any {@code DefaultSavedRequest} will again be removed.</li>
|
||||
* <li>
|
||||
* If a {@link SavedRequest} is found in the {@code RequestCache} (as set by the
|
||||
* If a {@link org.springframework.security.web.savedrequest.SavedRequest} is found in the {@code RequestCache} (as set by the
|
||||
* {@link ExceptionTranslationFilter} to record the original destination before the
|
||||
* authentication process commenced), a redirect will be performed to the Url of that
|
||||
* original destination. The {@code SavedRequest} object will remain cached and be picked
|
||||
* up when the redirected request is received (See
|
||||
* {@link org.springframework.security.web.savedrequest.SavedRequestAwareWrapper
|
||||
* SavedRequestAwareWrapper}).</li>
|
||||
* <a href="{@docRoot}/org/springframework/security/web/savedrequest/SavedRequestAwareWrapper.html">SavedRequestAwareWrapper</a>).
|
||||
* </li>
|
||||
* <li>
|
||||
* If no {@code SavedRequest} is found, it will delegate to the base class.</li>
|
||||
* If no {@link org.springframework.security.web.savedrequest.SavedRequest} is found, it will delegate to the base class.</li>
|
||||
* </ul>
|
||||
*
|
||||
* @author Luke Taylor
|
||||
|
@ -23,7 +23,7 @@ import javax.servlet.http.HttpSession;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
|
||||
/**
|
||||
* Uses {@link HttpServletRequest#changeSessionId()} to protect against session fixation
|
||||
* Uses {@code HttpServletRequest.changeSessionId()} to protect against session fixation
|
||||
* attacks. This is the default implementation for Servlet 3.1+.
|
||||
*
|
||||
* @author Rob Winch
|
||||
|
@ -16,13 +16,12 @@ import org.springframework.util.Assert;
|
||||
* {@link RegisterSessionAuthenticationStrategy} is typically used in combination with
|
||||
* {@link CompositeSessionAuthenticationStrategy} and
|
||||
* {@link ConcurrentSessionControlAuthenticationStrategy}, but can be used on its own if
|
||||
* tracking of sessions is desired but no need to control concurrency.</P
|
||||
* tracking of sessions is desired but no need to control concurrency.
|
||||
*
|
||||
* <p>
|
||||
* NOTE: When using a {@link SessionRegistry} it is important that all sessions (including
|
||||
* timed out sessions) are removed. This is typically done by adding
|
||||
* {@link HttpSessionEventPublisher}.
|
||||
* </p>
|
||||
*
|
||||
* @see CompositeSessionAuthenticationStrategy
|
||||
*
|
||||
|
@ -27,7 +27,7 @@ import javax.servlet.http.HttpSession;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* The default implementation of {@link SessionAuthenticationStrategy} when using <
|
||||
* The default implementation of {@link SessionAuthenticationStrategy} when using <
|
||||
* Servlet 3.1.
|
||||
* <p>
|
||||
* Creates a new session for the newly authenticated user if they already have a session
|
||||
|
@ -92,12 +92,12 @@ import org.springframework.web.filter.GenericFilterBean;
|
||||
* correct constraints to the <tt>switchUserUrl</tt>. Example:
|
||||
*
|
||||
* <pre>
|
||||
* <bean id="switchUserProcessingFilter" class="org.springframework.security.web.authentication.switchuser.SwitchUserFilter">
|
||||
* <property name="userDetailsService" ref="userDetailsService" />
|
||||
* <property name="switchUserUrl" value="/login/impersonate" />
|
||||
* <property name="exitUserUrl" value="/logout/impersonate" />
|
||||
* <property name="targetUrl" value="/index.jsp" />
|
||||
* </bean>
|
||||
* <bean id="switchUserProcessingFilter" class="org.springframework.security.web.authentication.switchuser.SwitchUserFilter">
|
||||
* <property name="userDetailsService" ref="userDetailsService" />
|
||||
* <property name="switchUserUrl" value="/login/impersonate" />
|
||||
* <property name="exitUserUrl" value="/logout/impersonate" />
|
||||
* <property name="targetUrl" value="/index.jsp" />
|
||||
* </bean>
|
||||
* </pre>
|
||||
*
|
||||
* @author Mark St.Godard
|
||||
|
@ -34,13 +34,14 @@ import org.springframework.web.method.support.ModelAndViewContainer;
|
||||
* {@link Controller}:
|
||||
*
|
||||
* <pre>
|
||||
* @Controller
|
||||
* @Controller
|
||||
* public class MyController {
|
||||
* @RequestMapping("/user/current/show")
|
||||
* @RequestMapping("/user/current/show")
|
||||
* public String show(@AuthenticationPrincipal CustomUser customUser) {
|
||||
* // do something with CustomUser
|
||||
* return "view";
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
@ -50,11 +51,9 @@ import org.springframework.web.method.support.ModelAndViewContainer;
|
||||
* match, null will be returned unless
|
||||
* {@link AuthenticationPrincipal#errorOnInvalidType()} is true in which case a
|
||||
* {@link ClassCastException} will be thrown.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Alternatively, users can create a custom meta annotation as shown below:
|
||||
* </p>
|
||||
*
|
||||
* <pre>
|
||||
* @Target({ ElementType.PARAMETER })
|
||||
@ -66,16 +65,16 @@ import org.springframework.web.method.support.ModelAndViewContainer;
|
||||
*
|
||||
* <p>
|
||||
* The custom annotation can then be used instead. For example:
|
||||
* </p>
|
||||
*
|
||||
* <pre>
|
||||
* @Controller
|
||||
* @Controller
|
||||
* public class MyController {
|
||||
* @RequestMapping("/user/current/show")
|
||||
* @RequestMapping("/user/current/show")
|
||||
* public String show(@CurrentUser CustomUser customUser) {
|
||||
* // do something with CustomUser
|
||||
* return "view";
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* @deprecated use org.springframework.security.web.method.annotation.
|
||||
|
@ -267,7 +267,7 @@ public abstract class AbstractSecurityWebApplicationInitializer implements
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the <servlet-name> to use the DispatcherServlet's
|
||||
* Return the <servlet-name> to use the DispatcherServlet's
|
||||
* {@link WebApplicationContext} to find the {@link DelegatingFilterProxy} or null to
|
||||
* use the parent {@link ApplicationContext}.
|
||||
*
|
||||
@ -278,7 +278,7 @@ public abstract class AbstractSecurityWebApplicationInitializer implements
|
||||
* {@link WebApplicationContext}.
|
||||
* </p>
|
||||
*
|
||||
* @return the <servlet-name> of the DispatcherServlet to use its
|
||||
* @return the <servlet-name> of the DispatcherServlet to use its
|
||||
* {@link WebApplicationContext} or null (default) to use the parent
|
||||
* {@link ApplicationContext}.
|
||||
*/
|
||||
|
@ -28,7 +28,8 @@ import javax.servlet.http.HttpServletRequest;
|
||||
public class InvalidCsrfTokenException extends CsrfException {
|
||||
|
||||
/**
|
||||
* @param msg
|
||||
* @param expectedAccessToken
|
||||
* @param actualAccessToken
|
||||
*/
|
||||
public InvalidCsrfTokenException(CsrfToken expectedAccessToken,
|
||||
String actualAccessToken) {
|
||||
|
@ -85,7 +85,7 @@ public final class XXssProtectionHeaderWriter implements HeaderWriter {
|
||||
* If false, will not specify the mode as blocked. In this instance, any content will
|
||||
* be attempted to be fixed. If true, the content will be replaced with "#".
|
||||
*
|
||||
* @param enabled the new value
|
||||
* @param block the new value
|
||||
*/
|
||||
public void setBlock(boolean block) {
|
||||
if (!enabled && block) {
|
||||
|
@ -7,7 +7,7 @@ import java.util.regex.Pattern;
|
||||
/**
|
||||
* Implementation which uses a regular expression to validate the supplied origin. If the
|
||||
* value of the HTTP parameter matches the pattern, then the the result will be ALLOW-FROM
|
||||
* <paramter-value>.
|
||||
* <paramter-value>.
|
||||
*
|
||||
* @author Marten Deinum
|
||||
* @since 3.2
|
||||
|
@ -50,7 +50,7 @@ public final class XFrameOptionsHeaderWriter implements HeaderWriter {
|
||||
*
|
||||
* @param frameOptionsMode the {@link XFrameOptionsMode} to use. If using
|
||||
* {@link XFrameOptionsMode#ALLOW_FROM}, use
|
||||
* {@link #FrameOptionsHeaderWriter(AllowFromStrategy)} instead.
|
||||
* {@link #XFrameOptionsHeaderWriter(AllowFromStrategy)} instead.
|
||||
*/
|
||||
public XFrameOptionsHeaderWriter(XFrameOptionsMode frameOptionsMode) {
|
||||
Assert.notNull(frameOptionsMode, "frameOptionsMode cannot be null");
|
||||
|
@ -34,12 +34,13 @@ import org.springframework.web.method.support.ModelAndViewContainer;
|
||||
* {@link Controller}:
|
||||
*
|
||||
* <pre>
|
||||
* @Controller
|
||||
* @Controller
|
||||
* public class MyController {
|
||||
* @MessageMapping("/im")
|
||||
* @MessageMapping("/im")
|
||||
* public void im(@AuthenticationPrincipal CustomUser customUser) {
|
||||
* // do something with CustomUser
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
@ -49,11 +50,9 @@ import org.springframework.web.method.support.ModelAndViewContainer;
|
||||
* match, null will be returned unless
|
||||
* {@link AuthenticationPrincipal#errorOnInvalidType()} is true in which case a
|
||||
* {@link ClassCastException} will be thrown.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Alternatively, users can create a custom meta annotation as shown below:
|
||||
* </p>
|
||||
*
|
||||
* <pre>
|
||||
* @Target({ ElementType.PARAMETER })
|
||||
@ -65,15 +64,15 @@ import org.springframework.web.method.support.ModelAndViewContainer;
|
||||
*
|
||||
* <p>
|
||||
* The custom annotation can then be used instead. For example:
|
||||
* </p>
|
||||
*
|
||||
* <pre>
|
||||
* @Controller
|
||||
* @Controller
|
||||
* public class MyController {
|
||||
* @MessageMapping("/im")
|
||||
* @MessageMapping("/im")
|
||||
* public void im(@CurrentUser CustomUser customUser) {
|
||||
* // do something with CustomUser
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* @author Rob Winch
|
||||
|
@ -43,7 +43,6 @@ import org.apache.commons.logging.LogFactory;
|
||||
* wrapper. Nevertheless, the important data from the original request is emulated and
|
||||
* this should prove adequate for most purposes (in particular standard HTTP GET and POST
|
||||
* operations).
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Added into a request by
|
||||
|
@ -155,7 +155,7 @@ public class SecurityContextHolderAwareRequestFilter extends GenericFilterBean {
|
||||
* when invoking {@link HttpServletRequest#logout()}.
|
||||
* </p>
|
||||
*
|
||||
* @param logoutHandlers the {@link List<LogoutHandler>}s when invoking
|
||||
* @param logoutHandlers the {@code List<LogoutHandler>}s when invoking
|
||||
* {@link HttpServletRequest#logout()}.
|
||||
*
|
||||
* @throws IllegalStateException if the Servlet 3 APIs are not found on the classpath
|
||||
|
@ -102,8 +102,11 @@ public class ThrowableAnalyzer {
|
||||
/**
|
||||
* Initializes associations between <code>Throwable</code>s and
|
||||
* <code>ThrowableCauseExtractor</code>s. The default implementation performs the
|
||||
* following registrations: <li>{@link #DEFAULT_EXTRACTOR} for {@link Throwable}</li>
|
||||
* <li>{@link #INVOCATIONTARGET_EXTRACTOR} for {@link InvocationTargetException}</li> <br>
|
||||
* following registrations:
|
||||
* <ul>
|
||||
* <li>{@link #DEFAULT_EXTRACTOR} for {@link Throwable}</li>
|
||||
* <li>{@link #INVOCATIONTARGET_EXTRACTOR} for {@link InvocationTargetException}</li>
|
||||
* </ul><br>
|
||||
* Subclasses overriding this method are encouraged to invoke the super method to
|
||||
* perform the default registrations. They can register additional extractors as
|
||||
* required.
|
||||
|
Loading…
x
Reference in New Issue
Block a user