czwartek, 4 października 2007

JBOSS basic security HOWTO

Niby prosta rzecz. Mamy aplikację, na JBossAS Wystawiamy ją, klient sobie ogląda. Bajerka jest. Ale nagle, uświadamia sobie, że konkurencja czyha i okazuje się, że aplikację trzeba "zahasłować". Sprawa prosta, ale musiałem się trochę naszperać. Na szczęście po raz ostatni.

Do rzeczy:

do katalogu:

{jboss}/server/default/conf/props

kopiujemy pliki:

(da się tu jakoś wrzucić pliki?)
roles.properties

###########
admin=WebAppUser
############

users.properties

###########

admin=1234hasło
###########

do web.xml aplikacji dodajemy:

<!-- security -->
<security-constraint>
<web-resource-collection>
<web-resource-name>All resources</web-resource-name>
<description>Protects all resources</description>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>WebAppUser</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>WebAppUser</role-name>
</security-role>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Test Realm</realm-name>
</login-config>
<!-- /security -->

do katalogu WEB-INF kopiujemy plik jboss-web.xml

<jboss-web>
<!-- Uncomment the security-domain to enable security. You will
need to edit the htmladaptor login configuration to setup the
login modules used to authentication users. -->
<security-domain>java:/jaas/ankiety</security-domain>
</jboss-web>

i jeszcze jeden pliczek bierzemy na edytor.
Do
{jboss}/server/default/conf/login-config.xml

dodajemy

<application-policy name = "ankiety">
<authentication>
<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag = "required">
<module-option name="usersProperties">props/users.properties</module-option>
<module-option name="rolesProperties">props/roles.properties</module-option>
</login-module>
</authentication>
</application-policy>

Restart JBossASa i powinien nas powitać ekran z monitem o hasło.
User to admin
hasło 1234hasło

Włala.

Co się tak na prawdę stało? Nie wnikam. W końcu jestem inżynierem.
Jeżeli hasło wam nie pasuje w aplikacji, sprawdźcie w pierwszej kolejności, czy plik
jboss-web.xml jest w WEB-INF oraz czy pliki *.properties są tam gdzie trzeba.

1 komentarz:

sblachowicz pisze...

W koncu jakis konkretny przyklad. Kurna szukam i szukam konkretnej implementacji. Wszedzie Panowie madre glowy wypisuja jakie to JAAS jest super ale zero przykladow. Dzieki :)