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

пытаюсь прикрутить асеги к приложению,натыкал по мануалу строчек,
приложение работает будто ничего и небыло!
Что я забыл?или в чем я ошибся
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
21.08.2006, 17:59
    #33933017
BlackWall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
acegi security
Аутентификация, видимо, работает. но ведь для того, чтобы управлять доступом к ресурсам, нужно настроить авторизацию. Т.е. настрой AccessDecisionManager, например org.acegisecurity.vote.AffirmativeBased.
...
Рейтинг: 0 / 0
21.08.2006, 18:10
    #33933043
BlackWall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
acegi security
Совсем забыл - доступ к ресурсам должен каким-либо образом ограничиваться. Т.е. если секьюрим методы, то юзаем например аннотации, для URL-ов тоже что-нибудь придумываем, наверное, в зависимости от Web-фреймворка.
...
Рейтинг: 0 / 0
22.08.2006, 11:57
    #33934133
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
acegi security
спасибо!!!
а можете обьяснить как эти многочисленые бины настраивать?
...
Рейтинг: 0 / 0
22.08.2006, 14:43
    #33934915
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
acegi security
еще вопрос почему если в applicationContext-acegi-security.xml писать коменты на русском то все падает?!
...
Рейтинг: 0 / 0
22.08.2006, 15:49
    #33935192
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
acegi security
после научного метода тыка по прописи 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
22.08.2006, 18:25
    #33935758
BlackWall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
acegi security
Как настраивать бины описано например в книжке "Spring In Action". Если смотреть на то, что ты написал и как это работает - почитай мануал по Acegi, который сравнительно небольшой. А упростить это все (в плане количества строк) можно, использовав например атрибут default-autowire="byName" в теге <beans/>.
...
Рейтинг: 0 / 0
23.08.2006, 10:01
    #33936486
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
acegi security
мануал читал до и после ))боле мене понятно стало толькл после)))
про
Код: plaintext
 default -autowire="byName"
где пишут(или так намекните),хочу знать что делает.
в референсе далеко не все пишут или я как-то неправильно читаю.мне например надо сделать так ,чтоб ползователей добавлять можно было из приложения(не моя прихоть).в доках нашел классы с методами которые вроде как позволяют это делать. возник вопрос мне надо самому написать примочку с использованием этих класиков или есть какаято альтернатива?

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

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

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


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