Spring Security
Key concepts
Config with
@EnableWebSecurity
and extendsWebSecurityConfigurerAdapter
Authority of
antMatchers
can be delegated withhas(Any)Role
,has(Any)Authority
.Order of
antMatcher
matters, specific path should be defined first.In Pojo Enum design, can set up permission enum as the
Set
attribute of role enumAuthority can either be set up with
@EnableGlobalMethodSecurity
in config and@PreAuthorize
in controllers.
To load users for AA, creating a service (with
@Service
) that implementsUserDetailsService
, and overridesloadUserByUsername()
Authentication
Basic
Using header to send based64-encoded username:password so HTTPS is recommended
Simple and fast, but cannot logout
Form-based
Using form to send username, password to get sessionid back and then store in cookies
Can logout
Session id can be stored to external DBs. like: Redis
CSRF
Turned on by default, and a token issued by Spring Security would be kept in browser cookies. And POST / PUT / PATCH / DELETE requests must carry the token.
If the client is not a browser, turn CSRF protection off.
Last updated