Package org.springframework.security.config.annotation.method.configuration

# Annotation Interface EnableMethodSecurity

@Retention(RUNTIME) @Target(TYPE) @Documented @Import(org.springframework.security.config.annotation.method.configuration.MethodSecuritySelector.class) public @interface EnableMethodSecurity
Enables Spring Security Method Security.

Since:
  5.6

## Optional Element Summary

Optional Elements
Modifier and Type
Optional Element
Description
`boolean`
`jsr250Enabled`
Determines if JSR-250 annotations should be enabled.
`org.springframework.context.annotation.AdviceMode`
`mode`
Indicate how security advice should be applied.
`int`
`offset`
Indicate additional offset in the ordering of the execution of the security interceptors when multiple advices are applied at a specific joinpoint.
`boolean`
`prePostEnabled`
Determines if Spring Security's `PreAuthorize`, `PostAuthorize`, `PreFilter`, and `PostFilter` annotations should be enabled.
`boolean`
`proxyTargetClass`
Indicate whether subclass-based (CGLIB) proxies are to be created as opposed to standard Java interface-based proxies.
`boolean`
`securedEnabled`
Determines if Spring Security's `Secured` annotation should be enabled.

## Element Details

### prePostEnabled

boolean prePostEnabled
Determines if Spring Security's `PreAuthorize`, `PostAuthorize`, `PreFilter`, and `PostFilter` annotations should be enabled. Default is true.

Returns:
  true if pre/post annotations should be enabled false otherwise

Default:
  true

### securedEnabled

boolean securedEnabled
Determines if Spring Security's `Secured` annotation should be enabled. Default is false.

Returns:
  true if `Secured` annotation should be enabled false otherwise

Default:
  false

### jsr250Enabled

boolean jsr250Enabled
Determines if JSR-250 annotations should be enabled. Default is false.

Returns:
  true if JSR-250 should be enabled false otherwise

Default:
  false

### proxyTargetClass

boolean proxyTargetClass
Indicate whether subclass-based (CGLIB) proxies are to be created as opposed to standard Java interface-based proxies. The default is `false`. Applicable only if `mode()` is set to `AdviceMode.PROXY`.

Note that setting this attribute to `true` will affect all Spring-managed beans requiring proxying, not just those marked with `@Cacheable`. For example, other beans marked with Spring's `@Transactional` annotation will be upgraded to subclass proxying at the same time. This approach has no negative impact in practice unless one is explicitly expecting one type of proxy vs another, e.g. in tests.

Returns:
  true if subclass-based (CGLIB) proxies are to be created

Default:
  false

### mode

org.springframework.context.annotation.AdviceMode mode
Indicate how security advice should be applied. The default is `AdviceMode.PROXY`.

Returns:
  the `AdviceMode` to use
See Also:
  - `AdviceMode`

Default:
  PROXY

### offset

int offset
Indicate additional offset in the ordering of the execution of the security interceptors when multiple advices are applied at a specific joinpoint. I.e., precedence of each security interceptor enabled by this annotation will be calculated as sum of its default precedence and offset. The default is 0.

Returns:
  the offset in the order the security advisor should be applied
Since:
  6.3

Default:
  0