WebSecurityConfigurerAdapterを継承したものを定義しておく。
| Authentication-manager | 認証処理を行うが、実際の処理はproviderに委譲 |
| Authentication-provider | 実際の認証処理を行う。ユーザー認証はまたUserDetailServiceへ |
| UserDetailsService | デフォルト実装としてメモリベースやJDBCが容易されている。 |
Configでパス単位で設定するか、各クラスで@PreAuthorize
| permitAll | 認証不要 |
| isAuthenticated() | 認証必須 |
http
.authorizeRequests()
.antMatchers("/css/**", "/fonts/**", "/js/**").permitAll()
.anyRequest().authenticated();
CREATE TABLE USERS (
USERNAME VARCHAR_IGNORECASE(50) NOT NULL PRIMARY KEY,
PASSWORD VARCHAR_IGNORECASE(50) NOT NULL,
ENABLED BOOLEAN NOT NULL
);
CREATE TABLE AUTHORITIES (
USERNAME VARCHAR_IGNORECASE(50) NOT NULL,
AUTHORITY VARCHAR_IGNORECASE(50) NOT NULL,
CONSTRAINT FK_AUTHORITIES_USERS FOREIGN KEY (USERNAME) REFERENCES USERS(USERNAME),
CONSTRAINT UK_AUTHORITIES UNIQUE (USERNAME, AUTHORITY)
);
INSERT INTO USERS VALUES ('fuga', 'FUGA', true);
INSERT INTO AUTHORITIES VALUES ('fuga', 'USER');