SpringMVCにおけるユーザー認証
SpringMVCでは、spring-securityを使ってユーザー認証を行う。
そのために、pom.xmlに以下の内容を追加する。
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> <version>4.0.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>4.0.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>4.0.1.RELEASE</version> </dependency>
web.xmlの最後にフィルターを追加する。
<filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
src/main/resources/spring フォルダに、spring-security.xml を作成する。
<beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.0.xsd"> <http pattern="/" security="none"/> <http pattern="/index.jsp" security="none"/> <http auto-config="true" > <intercept-url pattern="/**" access="hasRole('ROLE_USER')" /> <form-login /> <logout /> </http> <beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <beans:property name="driverClassName" value="org.hsqldb.jdbc.JDBCDriver" /> <beans:property name="url" value="jdbc:hsqldb:hsql://localhost/mydata" /> <beans:property name="username" value="sa" /> <beans:property name="password" value="" /> </beans:bean> <!-- ユーザとROLEを定義 --> <authentication-manager> <authentication-provider> <jdbc-user-service data-source-ref="dataSource" users-by-username-query="SELECT user_name, password, enabled FROM users WHERE user_name = ?" authorities-by-username-query="SELECT user_name, role FROM users WHERE user_name = ?" /> </authentication-provider> </authentication-manager> </beans:beans>
ユーザーとユーザの権限を管理するためのテーブルを作成する。
CREATE TABLE users( user_id bigint NOT NULL identity, user_name varchar(50) NOT NULL, password varchar(50) NOT NULL, enabled tinyint NOT NULL, role varchar(100) NOT NULL );
USERSテーブルにテスト用のユーザーを登録する。
INSERT INTO users ( user_name , password , enabled, role) VALUES ( 'taro', 'abcd' , 1, 'ROLE_USER' );
チーム開発
チームで開発するWebアプリケーションを決めよう!
- 2ちゃんねる
- LINE
- Wiki
- EC(ネットショップ)
以下のことを決めよう。
- 作成するサービスを決める(候補を出す)
- チーム名を決める
- リーダーを決める
- サービスの名前(プロジェクト名)を決める
- 基本的な画面遷移図(ロバストネス図)を作成する
ロバストネス図は、astah community で作れる。
チーム1
チーム名:やりたい
リーダー:西田
サービス名:やりたま
プロジェクト名:Yaritama
チーム2
チーム名:ナイトプール
リーダー:中尾
サービス名: 写真共有アプリ
プロジェクト名: PhotoSharing
チーム3
チーム名:ボビーオロゴン
リーダー:前田
サービス名:診断メーカー
プロジェクト名:ShindanMaker
チーム4
チーム名:ママ、早く!
リーダー:山本
サービス名:掲示板
プロジェクト名:3chan
チーム5
チーム名:ゲームウィキ麻生支部
リーダー:宮崎
サービス名:ゲームウィキ
プロジェクト名:GameWiki