как обойти через роли безопасности Java EE - PullRequest
0 голосов
/ 10 февраля 2011

Вот пример кода из моего web.xml

<security-constraint>
    <display-name>
    change password</display-name>
    <web-resource-collection>
        <web-resource-name>change password</web-resource-name>
        <url-pattern>/ResetPassword.html</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <description>Roles which can access landing page</description>
        <role-name>Admin</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint> 

Только пользователь с ролью «Администратор» может получить доступ к странице «ResetPassword.html».

Существует API Java EE, который позволяет нам проверить, имеет ли текущий пользователь доступ к определенной роли или нет.

request.isUserInRole ( "Администратор");

Мой пользователь по умолчанию "DefUser" возвращает false, поскольку ему не назначена роль, и я получил ошибку 403, поскольку DefUser не может перейти на страницу "ResetPassword.html". Могу ли я заставить request.isUserInRole ("Admin") возвращать true, если я вхожу в систему с DefUser? Есть ли другой способ сделать это?

Я хочу использовать ограничения безопасности. Это одно из требований, предъявляемых к такому пользователю, как «DefUser», который должен иметь разрешение на все страницы, которым не назначены роли.

Я просто хочу обойти эти ограничения безопасности. Есть ли какой-нибудь способ для «DefUser» получить доступ к странице «ResetPassword.html»?

http://www.imrantariq.com/blog/

Ответы [ 3 ]

4 голосов
/ 10 февраля 2011

Безопасность Java EE нельзя обойти. В противном случае это было бы так же полезно, как шоколадный чайник.

1 голос
/ 07 апреля 2011

Разверните ваше приложение на сервере приложений.Зайдите в администрацию сервера приложений и назначьте своего DefUser на роль администратора.Если у вас есть другие роли, назначьте DefUser для этих ролей.

Вот и все.Обход не требуется.

0 голосов
/ 10 февраля 2011

Не уверен насчет web.xml, но, по крайней мере, с аннотациями безопасности на EJB, если я правильно помню, вы можете настроить каждую службу на доступность:

  • любым пользователем
  • любым авторизованным пользователем
  • по определенным ролям
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...