ここでRESTサービスを保護する方法について非常に素晴らしい回答を読みましたが、それらはすべて純粋な理論に過ぎず、あまり役に立ちませんでした。REST を使用する場合、JDBCRealm-FORM 認証をどのように実装しますか?
ログインフォーム
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Login Form</title>
</head>
<body>
<form method="post" action="j_security_check">
<p>You need to log in to access protected information.</p>
<table>
<tr>
<td>User name:</td>
<td><input type="text" name="j_username" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="j_password" /></td>
</tr>
</table>
<p><input type="submit" value="Login" /></p>
</form>
</body>
</html>
web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>How to protect REST</web-resource-name>
<url-pattern>/protected/*</url-pattern>----> What is that in case of rest?
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>HEAD</http-method>
<http-method>PUT</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
<role-name>customer</role-name>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>jdbcRealm</realm-name>
</login-config>
<security-role>
<role-name>admin</role-name>
</security-role>
<security-role>
<role-name>user</role-name>
</security-role>
<security-role>
<description/>
<role-name>customer</role-name>
</security-role>
質問:
1) Glassfish で JDBCRealm を作成しましたが、動作しています。別のjsf-appでテストしました。クライアントRESTサービスの場合、例えばそれは何ですか:<url-pattern>/protected/*</url-pattern>
通常、保護されたjsp/jsf/xhtmlなどのページがある「フォルダー」を指しますが、今はどこですか?
2) セッションはどうですか? ステートレスコンテキストでセッションを使用することは不可能だと思います
3) REST で FORM ベースの認証を使用することは可能ですか?
4)私よりも賢い人がクライアントとサーバーの残りのアプリケーションを保護する方法を説明するチュートリアルへのリンク。