Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аутентификация в фильтре, Tomcat 
:(
    Опции темы
sith
Дата 4.1.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 11.2.2007

Репутация: нет
Всего: 1



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

Код

<security-constraint>

        <web-resource-collection>
            <web-resource-name>TEST</web-resource-name>
            <url-pattern>/test1</url-pattern>
            <http-method>PROPFIND</http-method>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>

        <auth-constraint>
            <role-name>sith</role-name>
        </auth-constraint>
        
    </security-constraint>

    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>default</realm-name>
    </login-config>


... в этом примере меня не устраивает то что роли беруться из конфига томката... а как мне сделать так что бы из таблицы в  БД брались... ???



Это сообщение отредактировал(а) sith - 4.1.2008, 13:56


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Alexis
Дата 4.1.2008, 14:03 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 14.8.2006
Где: Казань

Репутация: 5
Всего: 5



А причем здесь фильтр?

Цитата(sith @  4.1.2008,  13:50 Найти цитируемый пост)
в этом примере меня не устраивает то что роли беруться из конфига томката... а как мне сделать так что бы из таблицы в  БД брались... ???

http://tomcat.apache.org/tomcat-5.5-doc/re....html#JDBCRealm
PM   Вверх
vzf
Дата 4.1.2008, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 10.9.2005

Репутация: 2
Всего: 5



Alexis правильно тебе ссылку дает smile Настрой контекст твоего приложения так, чтобы использовался JDBCRealm для аутентификации. В доках томката довольно подробно написано как это сделать.

Это сообщение отредактировал(а) vzf - 4.1.2008, 17:06
--------------------
Java - Write Once, Test EveryWhere!
PM MAIL   Вверх
sith
Дата 4.1.2008, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 11.2.2007

Репутация: нет
Всего: 1



бальшое спасибо... заработало...smile


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
sith
Дата 4.1.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 11.2.2007

Репутация: нет
Всего: 1



хотя есть еще у меня один вопрос... получаеться там есть два варианта аутентификации - первый, который у меня работает, это когда я непосредсвенно указываю базу данных и драйвер к ней... 
Код

<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
      driverName="com.mysql.jdbc.Driver"
   connectionURL="jdbc:mysql://localhost/site_db?user=root&amp;password=cj.p lt,bkjd"
       userTable="users" userNameCol="user_name" userCredCol="user_pass"
   userRoleTable="user_roles" roleNameCol="role_name"/>


... но он не очень удобен так как указанная база данных используеться и в других сервлетах моего преложения... она получаеться уже прописанна в context.xml  моего томката... 
Код

<Context path="/" docBase="siteDB"
        debug="5" reloadable="true" crossContext="true">    

  <Resource name="jdbc/siteDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="cj.p lt,bkjd" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/site_db?autoReconnect=true"/>

</Context>

... следовательно можно использовать следующий вариант аутентификации
Код

<Realm className="org.apache.catalina.realm.DataSourceRealm" debug="99"
   dataSourceName="jdbc/siteDB"
   userTable="users" userNameCol="user_name" userCredCol="user_pass"
   userRoleTable="user_roles" roleNameCol="role_name"/>


но и тут начинаються баги... томкат выдает исклюение 

Код

SEVERE: Exception performing authentication
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
    at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    at org.apache.catalina.realm.DataSourceRealm.open(DataSourceRealm.java:402)
    at org.apache.catalina.realm.DataSourceRealm.authenticate(DataSourceRealm.java:283)
    at org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:181)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
    at java.lang.Thread.run(Thread.java:619)


что я делаю не так?


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.