Что касается сообщения другого пользователя (проблема с аутентификацией JAAS на Tomcat 7), я пытаюсь использовать JASS для аутентификации в приложении JSF.
К сожалению, я всегда направляюсь на страницу loginFailed.xhtml, если попытаюсь войти в систему.
Я использую Tomcat7, JSF 2.2 и базу данных Derby для хранения пользователей/паролей.
Вот выдержка из моего server.xml:
<Host appBase="webapps" autoDeploy="true" name="localhost"
unpackWARs="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn"
/> -->
<!-- Access log processes all example. Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log."
suffix=".txt" />
<Context docBase="socialanalysis" path="/socialanalysis"
reloadable="true" source="org.eclipse.jst.jee.server:socialanalysis">
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.apache.derby.jdbc.ClientDriver" connectionURL="jdbc:derby://localhost:1527/socialanalysis"
connectionName="socialanalysis" connectionPassword="socialanalysis"
userTable="users" userNameCol="username" userCredCol="password"
userRoleTable="users_roles" roleNameCol="rolename"/>
</Context>
</Host>
Excepert из моего web.xml:
<security-constraint>
<web-resource-collection>
<web-resource-name>secured</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>user</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/loginFailed.xhtml</form-error-page>
</form-login-config>
</login-config>
Я последовал этому руководству для создания базы данных: http://www.thejavageek.com/2013/07/07/configure-jdbcrealm-jaas-for-mysql-and-tomcat-7-with-form-based-authentication/
Большое вам спасибо за вашу помощь!
Я не совсем уверен, почему он работает сейчас, но я думаю, что он работал после добавления атрибутов http-метода в мою конфигурацию безопасности web.xml:
<web-resource-collection>
<web-resource-name>secured</web-resource-name>
<url-pattern>/admin/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>