Основы Spring Security - PullRequest
       8

Основы Spring Security

0 голосов
/ 25 декабря 2009

Как сделать ссылку видимой, только если аутентифицированный пользователь имеет соответствующие разрешения?

Я использую JSF, и, как я понимаю, я должен использовать атрибут rendered компонента, который должен вызывать логический метод поддерживающего компонента.

Я даже нашел соответствующий код некоторое время назад, но теперь я не могу найти его снова. Итак, кто-нибудь может привести пример такого логического метода, который работает с пружинной безопасностью ? (или, что еще лучше, ссылка на статью, описывающую эту проблему).

Ответы [ 3 ]

5 голосов
/ 25 декабря 2009

Мы используем SecurityContextHolder для доступа к зарегистрированному в данный момент пользователю. Затем мы используем метод getAuthorities () пользователя, чтобы получить ее роли, что приводит (примерно) к следующему:

((UserDetails)SecurityContextHolder.getPrincipal()).getAuthorities();
4 голосов
/ 25 декабря 2009

Атрибут rendereddisabled и readonly) не обязательно ожидает метод получения, который возвращает boolean, например:

public boolean getBooleanValue() {
    return this.booleanValue;
}

Эти атрибуты ожидают логическое выражение , которое может быть любым из следующих примеров:

<h:someComponent rendered="#{myBean.booleanValue}" />
<h:someComponent rendered="#{myBean.intValue > 10}" />
<h:someComponent rendered="#{myBean.objectValue == null}" />
<h:someComponent rendered="#{myBean.stringValue != 'someValue'}" />
<h:someComponent rendered="#{!empty myBean.collectionValue}" />
<h:someComponent rendered="#{!myBean.booleanValue && myBean.intValue != 0}" />
<h:someComponent rendered="#{myBean.stringValue == 'oneValue' || myBean.stringValue == 'anotherValue'}" />

Кстати, префикс is также допустим для boolean геттеров:

public boolean isBooleanValue() {
    return this.booleanValue;
}

Вы можете обернуть любой API, который Spring Security использует в геттере, и использовать его в логическом выражении EL одним из вышеупомянутых способов.

0 голосов
/ 25 декабря 2009

вы можете использовать компоненты acegi-jsf: http://cagataycivici.wordpress.com/2006/01/19/acegi%5Fjsf%5Fcomponents%5Fhit%5Fthe/

в основном вы должны получить доступ к основной проверке его полномочий ...

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