powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / acegi security
11 сообщений из 11, страница 1 из 1
acegi security
    #33932654
babka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хелп ми!!!

пытаюсь прикрутить асеги к приложению,натыкал по мануалу строчек,
приложение работает будто ничего и небыло!
Что я забыл?или в чем я ошибся
web.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			/WEB-INF/applicationContext-acegi-security.xml
		</param-value>
	</context-param>


       <filter>
        <filter-name>Acegi Filter Chain Proxy</filter-name>
        <filter- class >org.acegisecurity.util.FilterToBeanProxy</filter- class >
        <init-param>
            <param-name>targetClass</param-name>
            <param-value>org.acegisecurity.util.FilterChainProxy</param-value>
        </init-param>
   </filter>

    <filter-mapping>
      <filter-name>Acegi Filter Chain Proxy</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>


    <!--
      - Loads the root application context of  this  web app at startup.
      - The application context is then available via
      - WebApplicationContextUtils.getWebApplicationContext(servletContext).
    -->
    <listener>
        <listener- class >org.springframework.web.context.ContextLoaderListener</listener- class >
    </listener>
applicationContext-acegi-security.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans  PUBLIC  "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">



<beans>


    <bean id="filterChainProxy"  class ="org.acegisecurity.util.FilterChainProxy">
        <property name="filterInvocationDefinitionSource">
            <value>
                CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
                PATTERN_TYPE_APACHE_ANT
                /**=authenticationProcessingFilter,exceptionTranslationFilter,httpSessionContextIntegrationFilter,securityContextHolderAwareRequestFilter

            </value>
        </property>
    </bean>



    <bean id="authenticationProcessingFilter"  class ="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
        <property name="authenticationManager"><ref bean="authenticationManager"/></property>
        <property name="authenticationFailureUrl"><value>/acegilogin.jsp?login_error= 1 </value></property>
        <property name="defaultTargetUrl"><value>/</value></property>
        <property name="filterProcessesUrl"><value>/j_acegi_security_check</value></property>
    </bean>

    <bean id="authenticationManager"  class ="org.acegisecurity.providers.ProviderManager">
        <property name="providers">
            <list>
                <ref local="daoAuthenticationProvider"/>
                <!--<ref local="anonymousAuthenticationProvider"/>-->
                <!--<ref local="rememberMeAuthenticationProvider"/>-->
            </list>
        </property>
    </bean>

    <bean id="daoAuthenticationProvider"  class ="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
        <property name="userDetailsService"><ref bean="inMemoryDaoImpl"/></property>
        <!--<property name="saltSource"><ref bean="saltSource"/></property>-->
        <!--<property name="passwordEncoder"><ref bean="passwordEncoder"/></property>-->
    </bean>

    <!--
    <bean id="daoAuthenticationProvider"  class ="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
            <property name="userDetailsService" ref="userDetailsService"/>
            <property name="userCache">
                <bean  class ="org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">
                    <property name="cache">
                        <bean  class ="org.springframework.cache.ehcache.EhCacheFactoryBean">
                            <property name="cacheManager">
                                <bean  class ="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/>
                            </property>
                            <property name="cacheName" value="userCache"/>
                        </bean>
                    </property>
                </bean>
            </property>
        </bean>
    -->
    <bean id="inMemoryDaoImpl"  class ="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">
        <property name="userMap">
            <value>
                marissa=koala,ROLE_TELLER,ROLE_SUPERVISOR
                dianne=emu,ROLE_TELLER
                scott=wombat,ROLE_TELLER
                peter=opal,disabled,ROLE_TELLER
            </value>
        </property>
    </bean>



    <!--
        ExceptionTranslationFilter, to  catch  any Acegi Security exceptions so that either a HTTP error response can be returned
        or an appropriate AuthenticationEntryPoint can be launched( if  the principal has not been authenticated and therefore we need to go commence step three).
    -->

    <bean id="exceptionTranslationFilter"  class ="org.acegisecurity.ui.ExceptionTranslationFilter">
        <property name="authenticationEntryPoint"><ref local="authenticationProcessingFilterEntryPoint"/></property>
        <property name="accessDeniedHandler">
            <bean  class ="org.acegisecurity.ui.AccessDeniedHandlerImpl">
                <property name="errorPage" value="/accessDenied.jsp"/>
            </bean>
        </property>
    </bean>

    <bean id="authenticationProcessingFilterEntryPoint"  class ="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
        <property name="loginFormUrl"><value>/acegilogin.jsp</value></property>
        <property name="forceHttps"><value>false</value></property>
    </bean>

    <!--HttpSessionContextIntegrationFilter, to store the SecurityContext in the HttpSession between web requests.-->
    <bean id="httpSessionContextIntegrationFilter"  class ="org.acegisecurity.context.HttpSessionContextIntegrationFilter"/>

    <!--The SecurityContextHolderAwareRequestFilter,  if  you are using it to install an Acegi Security aware HttpServletRequestWrapper into your servlet container-->
    <bean id="securityContextHolderAwareRequestFilter"  class ="org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter"/>


</beans>
...
Рейтинг: 0 / 0
acegi security
    #33933017
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аутентификация, видимо, работает. но ведь для того, чтобы управлять доступом к ресурсам, нужно настроить авторизацию. Т.е. настрой AccessDecisionManager, например org.acegisecurity.vote.AffirmativeBased.
...
Рейтинг: 0 / 0
acegi security
    #33933043
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Совсем забыл - доступ к ресурсам должен каким-либо образом ограничиваться. Т.е. если секьюрим методы, то юзаем например аннотации, для URL-ов тоже что-нибудь придумываем, наверное, в зависимости от Web-фреймворка.
...
Рейтинг: 0 / 0
acegi security
    #33934133
babka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо!!!
а можете обьяснить как эти многочисленые бины настраивать?
...
Рейтинг: 0 / 0
acegi security
    #33934915
babka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще вопрос почему если в applicationContext-acegi-security.xml писать коменты на русском то все падает?!
...
Рейтинг: 0 / 0
acegi security
    #33935192
babka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
после научного метода тыка по прописи accessDecisionManager
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    <bean id="filterInvocationInterceptor"  class ="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
        <property name="authenticationManager" ref="authenticationManager"/>
        <property name="accessDecisionManager"><ref bean="accessDecisionManager"/></property>

        <property name="objectDefinitionSource">
            <value>
                CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
                PATTERN_TYPE_APACHE_ANT
                /secure/extreme/**=ROLE_SUPERVISOR
                /secure/**=ROLE_SUPERVISOR,ROLE_TELLER
            </value>
        </property>
    </bean>
    <bean id="accessDecisionManager"  class ="org.acegisecurity.vote.AffirmativeBased">
        <property name="allowIfAllAbstainDecisions" value="false"/>
        <property name="decisionVoters">
            <list>
                <bean  class ="org.acegisecurity.vote.RoleVoter"/>
                <bean  class ="org.acegisecurity.vote.AuthenticatedVoter"/>
            </list>
        </property>
    </bean>
(еще обшибся в последовательности цепки)
всё заработало, однако хотелось бы как нить понять чтож я такое написал,
и как это все усовершенствовать
...
Рейтинг: 0 / 0
acegi security
    #33935758
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как настраивать бины описано например в книжке "Spring In Action". Если смотреть на то, что ты написал и как это работает - почитай мануал по Acegi, который сравнительно небольшой. А упростить это все (в плане количества строк) можно, использовав например атрибут default-autowire="byName" в теге <beans/>.
...
Рейтинг: 0 / 0
acegi security
    #33936486
babka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мануал читал до и после ))боле мене понятно стало толькл после)))
про
Код: plaintext
 default -autowire="byName"
где пишут(или так намекните),хочу знать что делает.
в референсе далеко не все пишут или я как-то неправильно читаю.мне например надо сделать так ,чтоб ползователей добавлять можно было из приложения(не моя прихоть).в доках нашел классы с методами которые вроде как позволяют это делать. возник вопрос мне надо самому написать примочку с использованием этих класиков или есть какаято альтернатива?

p.s. пойду гуглить spring in action
...
Рейтинг: 0 / 0
acegi security
    #33936829
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну я бы создал класс привилегий юзеров, а дальше назначал бы каждому создаваемому юзеру свой набор привилегий. Соответственно, доступ к ресурсу предоставлять только при наличии соответствующей привилегии. Ничего архисложного вроде нет. Про авто-связывание бинов написано в "Spring In Action" изд-ва Manning. Они конечно уменьшают количество кода, но сложнее понять что от чего зависит. Так что, рекомендую написать так, как понятно, а потом включить autowire и удалить половину кода.:) Удачи.
Кстати, делал собственные расширения в виде своих AuthenticationProvider, Authentication, AccessDecisionVoter,ConfigAttribute и аннотаций.
...
Рейтинг: 0 / 0
acegi security
    #33937457
babka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНу я бы создал класс привилегий юзеров, а дальше назначал бы каждому создаваемому юзеру свой набор привилегий. Соответственно, доступ к ресурсу предоставлять только при наличии соответствующей привилегии. Ничего архисложного вроде нет
так и хочу, только еще надо сделать чтоб некий юзер(role_superpupermegaman) мог добовлять/удолять юзеров.

авторКстати, делал собственные расширения в виде своих AuthenticationProvider, Authentication, AccessDecisionVoter,ConfigAttribute и аннотаций.
забавно, что в референсе довольно таки часто упоминается фраза:"или сдаелайте свой\свою....")))
мнебы с имеющимся хозяйством для начала разобраться....
расширяли как брав исходник и дописывая необходимое?

пока искал книгу spring in action встретил упоминание, что имеется на русском.случаем нету?а то на англ долго читаю,еще дольше понимаю)))
...
Рейтинг: 0 / 0
acegi security
    #33937679
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не встречал
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / acegi security
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]