|
|
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, посоветуйте, как лучше реализовать авторизацию в приложении? есть вебприложение (smartgwt), развернутое на glassfish. в приложении отображаются, редактируются и тп. данные, хранящиеся в бд оракл. используются рест службы. теперь необходимо реализовать авторизацию пользователей. пользователи заводятся в самой базе. в оракле вьюшки, отображающие данные о пользователе - sys.dba_role_privs, dba_users, dba_roles. попробовал использовать jdbcrealm, не получилось, скорее всего изза пароля, всмысле шифрование на гласфише и в оракл разные (это предположение). а так было б хорошо, если указать в web.xml security-constraint для ролей и прописать там - какие можно выполнять запросы get, post .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 11:33:05 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
1. Прочитать мануал соответствующего сервера приложений по конфигурированию реалма в БД 2. Предпринять необходимые действия 3. Если что-то не получилось - выложить сюда максимально полную информацию об ошибке - что делали, что за ошибка, как пытались исправить и т.д.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 11:43:29 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenom, создаю пул jdbc/test. теперь создаю реалм testRealm - JAAS Context: jdbcRealm JNDI: jdbc/test User Table: sys.dba_users User Name Column: username Password Column: password Group Table: sys.dba_users_roles Group Name Column: GRANTED_ROLE поля encoding и Digest Algorithm при создании реалма пробовал заполнять разными способами, т.е. Digest Algorithm: none, SHA-256, MD5, для encoding: Hex, Base64. web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns=" http://java.sun.com/xml/ns/javaee" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>LogoutServlet</servlet-name> <servlet-class>security.LogoutServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LogoutServlet</servlet-name> <url-pattern>/LogoutServlet</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file> index.jsp </welcome-file> </welcome-file-list> <security-constraint> <web-resource-collection> <web-resource-name>Secure Pages</web-resource-name> <url-pattern>/restricted/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>root</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>testRealm</realm-name> </login-config> <security-role> <description/> <role-name>root</role-name> </security-role> </web-app> glassfish-web.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" " http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> <glassfish-web-app error-url=""> <context-root>/SecurityTest</context-root> <class-loader delegate="true"/> <jsp-config> <property name="keepgenerated" value="true"> <description>Keep a copy of the generated servlet class' java code.</description> </property> </jsp-config> <security-role-mapping> <role-name>root</role-name> <group-name>root</group-name> </security-role-mapping> </glassfish-web-app> можно сказать все как по учебнику, но при авторизации, при вводе даже верного пароля не логинится и в логах пишется следующее [#|2012-01-31T13:24:40.506+0600|WARNING|glassfish3.1|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=120;_ThreadName=Thread-1;|WEB9102: Web Login Failed: com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Security Exception|#] [#|2012-01-31T13:24:40.506+0600|WARNING|glassfish3.1|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=120;_ThreadName=Thread-1;|Exception com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Security Exception at com.sun.enterprise.security.auth.login.LoginContextDriver.doPasswordLogin(LoginContextDriver.java:394) at com.sun.enterprise.security.auth.login.LoginContextDriver.login(LoginContextDriver.java:240) at com.sun.enterprise.security.auth.login.LoginContextDriver.login(LoginContextDriver.java:153) at com.sun.web.security.RealmAdapter.authenticate(RealmAdapter.java:483) at com.sun.web.security.RealmAdapter.authenticate(RealmAdapter.java:425) at org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:176) at com.sun.web.security.RealmAdapter.invokeAuthenticateDelegate(RealmAdapter.java:1192) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:551) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:623) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:9 at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822) at com.sun.grizzly.comet.CometEngine.executeServlet(CometEngine.java:444) at com.sun.grizzly.comet.CometEngine.handle(CometEngine.java:308) at com.sun.grizzly.comet.CometAsyncFilter.doFilter(CometAsyncFilter.java:87) at com.sun.grizzly.arp.DefaultAsyncExecutor.invokeFilters(DefaultAsyncExecutor.java:171) at com.sun.grizzly.arp.DefaultAsyncExecutor.interrupt(DefaultAsyncExecutor.java:143) at com.sun.grizzly.arp.AsyncProcessorTask.doTask(AsyncProcessorTask.java:94) at com.sun.grizzly.http.TaskBase.run(TaskBase.java:193) at com.sun.grizzly.http.TaskBase.execute(TaskBase.java:175) at com.sun.grizzly.arp.DefaultAsyncHandler.handle(DefaultAsyncHandler.java:145) at com.sun.grizzly.arp.AsyncProtocolFilter.execute(AsyncProtocolFilter.java:204) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:619) Caused by: javax.security.auth.login.LoginException: Security Exception at javax.security.auth.login.LoginContext.invoke(LoginContext.java:856) at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) at javax.security.auth.login.LoginContext.login(LoginContext.java:579) at com.sun.enterprise.security.auth.login.LoginContextDriver.doPasswordLogin(LoginContextDriver.java:382) ... 36 more Caused by: java.lang.SecurityException at javax.security.auth.login.LoginContext.invoke(LoginContext.java:857) ... 42 more |#] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 12:41:54 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Вladimir, Это весь стек трейс? Глубже ничего нету? Если есть - выкладывайте, если нет - попробуйте поставить брейкпоинт на java.lang.SecurityException и посмотрите, что там реально происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 13:35:51 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Ну а вообще вам, разумеется, надо искать способ преобразовать пароль из текста к виду, который используется в оракле. Как это сделать - хз. Я бы начал с чтения доки по ораклу, что бы понять, как там хранятся пароли. Потом погуглил бы, так как наверняка вы не первый, кто хочет сделать такое. Если гугл не поможет, то варианты такие: 1) Писать свой реалм для работы с ораклом 2) Научиться перегонять оракловский пароль в текст, а потом шифровать его одним из известных Glassfish алгоритмов. 3) Может быть можно имплементировать свой алгоритм преобразования и как-то подсунуть его Glassfish, ну типа Digest Algorithm = MyCustomAlgorithm. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 13:43:25 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
я что-то не пойму. Какой пароль к СУБД, если пулинг? - либо нет пулинга и авторизация в СУБД - либо пулинг и ПРОКСИ авторизация. IMHO не надо смешивать обе технологии. может вот это поможет? http://habrahabr.ru/blogs/java/92608/ ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 14:44:47 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123я что-то не пойму. Какой пароль к СУБД, если пулинг? - либо нет пулинга и авторизация в СУБД - либо пулинг и ПРОКСИ авторизация. IMHO не надо смешивать обе технологии.Речь не об этом. Есть коннекшн к базе - тут вопросов нет. А в базе так же есть информация о пользователях в стандартных оракловских табличках, т.е. пользователь приложения = пользователь Oracle. И надо научить Glassfish аутентифицировать пользователей по этой информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 14:52:49 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenomА в базе так же есть информация о пользователях в стандартных оракловских табличках, т.е. пользователь приложения = пользователь Oracle. нет. Мы это обсуждали. Либо create user aaaaa password bbbbb тогда это аут-ия СУБД и на каждого юзверя по 1 схеме. Либо на каждого из пула берётся коннект ОДНОГО суперЮзверя. (Веб) Есть ещё смешанные варианты ЗЫ Если пассс и имя в стандартной табличке, тогда обычное select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:06:12 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenomт.е. пользователь приложения = пользователь Oracle. вот это не верно. Второй это CREATE USER ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:07:44 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123svenomА в базе так же есть информация о пользователях в стандартных оракловских табличках, т.е. пользователь приложения = пользователь Oracle. нет. Мы это обсуждали. Либо create user aaaaa password bbbbb тогда это аут-ия СУБД и на каждого юзверя по 1 схеме. Либо на каждого из пула берётся коннект ОДНОГО суперЮзверя. (Веб) Есть ещё смешанные варианты ЗЫ Если пассс и имя в стандартной табличке, тогда обычное selectВот странно - вы вроде и понимаете, а вроде и нет. Еще раз попытаюсь пояснить за автора. 1) Есть СУБД Oracle. 2) В СУБД есть специальный системынй пользователь и ассоциированная с ним схема (или чужая схема, но к которой у пользователя есть объектный привилегии), через которого AppServer подключается к БД. 3) Далее, в этой жу СУБД есть еще 100500 других пользователей у которых нет никаких схем (ну есть то они есть, просто пустые) с точки зрения приложения. Нам плевать на их схемы. Важно то, что в системных таблицах СУБД хранятся их данные - пароль и роли. 4) Идея автора заключается в том, что бы приспособить стандартный JDBCRealm Глассфиша так, что бы он мог аутентифицировать пользователей приложения по данным из этих системных таблиц Oracle. Все, точка. Больше нам эти пользователи ни для чего не нужны. Эта задача хитрая, возможно глупая, но она решаемая. Вопрос - как ее решить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:13:36 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
ну дак я и спрашиваю про то ЧТО Я НЕ ПОНЯЛ Я ж субд больше знаю, чем аппсервер svenom3) Далее, в этой жу СУБД есть еще 100500 других пользователей у которых нет никаких схем (ну есть то они есть, просто пустые) дак есть или нет? - например, админка. Как узнать список пользователей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:27:03 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
или ещё проще - код создания нового пользователя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:27:58 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123дак есть или нет? - например, админка. Как узнать список пользователей? Что есть или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:37:23 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenom3) Далее, в этой жу СУБД есть еще 100500 других пользователей у которых нет никаких схем (ну есть то они есть, просто пустые) с точки зрения приложения. Нам плевать на их схемы. Важно то, что в системных таблицах СУБД хранятся их данные - пароль и роли. 4) Идея автора заключается в том, что бы приспособить стандартный JDBCRealm Глассфиша так, что бы он мог аутентифицировать пользователей приложения по данным из этих системных таблиц Oracle. Все, точка. Больше нам эти пользователи ни для чего не нужны. Эта задача хитрая, возможно глупая, но она решаемая. Вопрос - как ее решить.в пункте 3 ошибка - там НЕ ХРАНИТСЯ пароль. там хранится нечто, нужное для алгоритма авторизации СУБД (для простоты назовем хэш пароля). авторизация в этом случае возможна только использованием спец-средств СУБД. как следствие 4-й пункт не решается через JDBCRealm в принципе. правильное решение это написание своего реалма который для авторизации вызывает функции Oracle. Реалм выступает прослойкой между тем как АппСервер запрашивает API авторизации и API Oracle для прохождения авторизации. Для Спринг проще показать примеры как это должно работать. Работа с Realms не стандартизована, потому нужно читать доки по конкретному серверу (а часто и по конкретной версии сервера). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:43:48 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123- например, админка. Как узнать список пользователей? зайти в стандартную админку СУБД и посмотреть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:51:26 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenomPetro123дак есть или нет? - например, админка. Как узнать список пользователей? Что есть или нет? я сразу отвечу: - в 1 случае - select users_name from sys.table_users (служебная таблица) - в 2 случае - select users_nameMy from ORM (пользовательская таблица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:51:45 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
VoDAPetro123- например, админка. Как узнать список пользователей? зайти в стандартную админку СУБД и посмотреть намёк на EM? Тогда в простом случае, это 1000 схем-логинов (пускай пустых) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:53:46 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123VoDAзайти в стандартную админку СУБД и посмотреть намёк на EM? Тогда в простом случае, это 1000 схем-логинов (пускай пустых)Да. В предыдущих твоих постах я не увидел проблемы, только вопрос "как посмотреть?". Посмотреть просто. Для этого уже давно сделаны средства. Так что телепатирую, что ты пытаешься намекнуть на сложность чего то иного, но не просто "посмотреть список логинов" ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:56:46 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
VoDA, да простой был вопрос: - через create user Оракла! создаётся новый пользователь или через insert в оракле. Но ты сказал уже, что проще в спринг. ОК. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 16:07:36 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123VoDA, да простой был вопрос: - через create user Оракла! создаётся новый пользователь или через insert в оракле. Но ты сказал уже, что проще в спринг. ОК.Спринг выполняет авторизацию либо встроенными методами (plain JDBC) ибо через собственный алгоритм. Собственный алгоритм может действовать как программисту удобно или нужно сделать - хоть JDBC, хоть JPA, хоть отправлять запросы на авторизацию к СУБД. Практически также работают Realms, но API для realms не специфицированы, потому под каждый сервер нужно было писать по своему. В Java EE 6 доработали авторизацию, но насколько они догнали Spring по удобству мне не ведомо. Потому при выборе между Spring и Realm - проще работать с Spring Security. На вопрос же "через create user Оракла! создаётся новый пользователь или через insert в оракле" это не отвечает. Тут правильно заходить с позиции "что хотите получить?" или "какие требования в ТЗ?" Если требование в ТЗ работать через insert/select, то это можно сделать стандартными средствами Spring Security или созданными производителем сервера Realm. Если требование в ТЗ работать через create user в Oracle, то для этого вероятнее всего придется дописать свой Manager для Spring Security или свой Realm для конкретной версии конкретного сервера. И выбор между этими вариантами лежит на авторе топика, а не конкретной технологии. "Если не знаешь куда идти, то ни один ветер не будет попутным" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 16:34:58 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
VoDA, Всё верно, но я одно не пойму. Я вот с такими _твоими_ словами больше согласен: автордля java проще авторизацию сделать на своей стороне. при этом общение с СУБД идет под одним аккаунтом и через пул коннектов. пул коннектов - сильно лучше для большого числа пользователей ибо для работы применяется меньшее количество подключений. я полностью их разделяю, т.к. критерий-требование не insert в ТЗ, а веб+пул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 16:47:58 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
можно ещё проще: - короткие транзакции не делают с оракловой аутентификацией (create user...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 16:49:25 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
как много написали пока отсутствовал... svenom правильно разъяснил, какова была моя попытка реализовать авторизацию через jdbc realm, после этой попытки понял, что через обычный jdbcrealm не получится, т.к. в оракле - в поле password это вовсе не пароль а нечто зашифрованное. и возвращаясь к изначальному моему вопросу авторпосоветуйте, как лучше реализовать авторизацию в приложении? самый простой вариант, это в сделать коннект к базе по данным пользователя и вытащить его роль, если она, скажем, админ, то ему можно все, если просто юзер, то заблокировать кнопочки, выполняющие post, put запросы. а хотелось бы еще, ставить некий запрет для определенной роли на выполнение get, post или put запросов. по поводу своего реалма, не подскажите подробного примера для разбора как его написать.. приложение smartGWT, сервер glassfish 3.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 06:02:22 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
хотя, пропустил сразу ссылку http://habrahabr.ru/blogs/java/92608/, попробую реализовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 06:09:28 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Видимо у вас так мало времени, что вы свой тред не читаете. Иначе ответили бы на вопрос: - как сейчас происходит соединение. Есть пул или нет? Кто дал идею заводить роли и пользователей именно Оракловых? svenom без сомнения верно отправил вас читать документацию. Разве там написано: ВladimirUser Table: sys.dba_users - что надо выставлять системные таблицы оракла с рутовыми паролями наружу в аппСервер в конфиги? - что для авторизации необходимо в БД заводить пользователя\роли в SYS? - что можно соединить архитектуру десктоп-корпоратив-длинные и пул-веб-короткие? Я не спорю, SmartGWT позволяет писать так и так... только там есть ньюансы. Это же безопасность Удачи! ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 10:04:54 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123- что надо выставлять системные таблицы оракла с рутовыми паролями наружу в аппСервер в конфиги?Автор же написал, что создал поверх системных таблиц вьюшки. В них можно спокойно исключить из списка юзеров всякие системные учетки типо SYSTEM и SYS, в них же можно спокойно запретить изменение. Так что никаких проблем нет, вы просто невнимательно прочитали первый пост автора. Petro123- что для авторизации необходимо в БД заводить пользователя\роли в SYS?Это, очевидно, продиктовано какими-то требованиями. На первый взгляд, это конечно выглядит странновато, но это за рамками вопроса автора, т.е. не наше дело. Может быть там какая-нибудь двухзвенка, которая аутентифицирует пользователей по оракловским учеткам, а автор разрабатывает какое-нибудь аналитическое трехзвенное приложение поверх этой БД. Вам то какая разница, почему он вынужден делать так? Petro123- что можно соединить архитектуру десктоп-корпоратив-длинные и пул-веб-короткие?Фраза напрочь лишена смысла. Вы, видимо, так и не поняли, о чем идет речь. Мы не говорим про "десктоп", "корпоратив", "длинные", "короткие" и т.д.. Речь только о том, как адаптировать данные из системных таблиц оракла под JAAS аутентификацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 10:49:04 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenomPetro123- что надо выставлять системные таблицы оракла с рутовыми паролями наружу в аппСервер в конфиги?Автор же написал, что создал поверх системных таблиц вьюшки. ===== в конфиге стоит не вьюшка. Так? В них можно спокойно исключить из списка юзеров всякие системные учетки типо SYSTEM и SYS, в них же можно спокойно запретить изменение. Так что никаких проблем нет, вы просто невнимательно прочитали первый пост автора. ==== вы невнимательны. Если ВСЁ это исключить, тогда почему не завести ОТДЕЛЬНУЮ таблицу? 2. На вьюшку сложнее дать права НЕ DBA внутри которой табла DBA Petro123- что для авторизации необходимо в БД заводить пользователя\роли в SYS? Может быть там какая-нибудь двухзвенка, ======= а я про что? Про то что - выглядит странновато :) В безопасности нет мелочей. Petro123- что можно соединить архитектуру десктоп-корпоратив-длинные и пул-веб-короткие?Фраза напрочь лишена смысла. Вы, видимо, так и не поняли, о чем идет речь. Мы не говорим про "десктоп", "корпоратив", "длинные", "короткие" и т.д.. Речь только о том, как адаптировать данные из системных таблиц оракла под JAAS аутентификацию. ===== без ответов выше нельзя ГРАМОТНО соединить бульдога с носорогом. вопрос автора напоминает такой: - "у меня есть поле id и триггер для его заполнения. Как его соединить с ОРМ аннотацией"? Вы помните что ответили на такой вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 11:00:56 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123 , 1) В конфиге может быть хоть вьюха, хоть таблица - без разницы. 2) Отдельную таблицу заводить незачем, так как данные о пользователях уже есть в системных таблицах. 3) Никаких сложностей с правами нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 11:26:08 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenom Petro123 , 1) В конфиге может быть хоть вьюха, хоть таблица - без разницы. 2) Отдельную таблицу заводить незачем, так как данные о пользователях уже есть в системных таблицах. 3) Никаких сложностей с правами нет. 1. может, пусть перепишет, если сможет дать такие права, чтобы 3 буквы SYS на АппСервере нигде не светили. 1.1 - как будем заводить новых? Ты ответишь или он? 2. Это ты за него решил? OK 3. Ждём результата работы фреймворка на "вьюхе". А лучше ссылку, чтобы протестировать на взлом :) Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 11:34:18 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123 , 1.1) Где было сказано, что это нужно? Вероятнее всего, одно приложение (или админ оракловый) этих пользователей создает, а другое - только читает их инфу. 2) Это не я решил за него, это автор сам сказал. 3) Какого еще фреймворка? ХЗ о чем вы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 11:40:32 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenomВероятнее всего, ну дак и не читай топик если "Вероятнее всего". Ты сказал, что всё понял, а на конкретные вопросы не ответил. Я их задал автору, пожелал ему удачи. Ферштейн? автор- "у меня есть поле id и триггер для его заполнения. Как его соединить с ОРМ аннотацией"? Вы помните что ответили на такой вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 11:46:24 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
1) в схеме SYS DBA_ROLE_PRIVS, DBA_USERS, DBA_ROLES - это вьюшки, не таблицы. и совершенно не важно что эти вьюшки в схеме SYS, я могу сделать обычный селект в своей схеме и создать вьюшки, ссылающиеся в схему SYS. DBA в начале названия вьюшки - это просто название, не более 2) пользователей завожу не я, они уже есть, и заведены оракляновским способом ни какие пароли нарожу, в конфиги и тп не выставляются. про архитектуру, пулы вопрос не задавался. и как реализовано приложение - не важно. было правильно сказано авторРечь только о том, как адаптировать данные из системных таблиц оракла под JAAS аутентификацию. не более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 11:51:02 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
за пожелание удачи и за ссылку http://habrahabr.ru/blogs/java/92608/ спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 11:52:50 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123ну дак и не читай топик если "Вероятнее всего". Ты сказал, что всё понял, а на конкретные вопросы не ответил. Я их задал автору, пожелал ему удачи. Ферштейн?Надеюсь, после этого поста 12024894 вы наконец-то "ферштейн" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 11:56:39 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Вladimir1) в схеме SYS DBA_ROLE_PRIVS, DBA_USERS, DBA_ROLES - это вьюшки, не таблицы. и это СИСТЕМНЫЕ объекты (пофиг как ты их назвал) оракла. Без CREATE USER иииии IDENTIFIED BY passsss DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp / grant connect, dba to иииии их не увидеть Вladimirсовершенно не важно что эти вьюшки в схеме SYS, я могу сделать обычный селект в своей схеме и создать вьюшки, ссылающиеся в схему SYS. DBA в начале названия вьюшки - это просто название, не более очень смешно "и заведены оракляновским способом" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 11:59:11 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenom, конечно, только автор может ответить ЧТО у него происходит :) Выводы делает каждый сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 12:01:00 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenom, как спец по АппСерверу, поясни - как ТЫ сам и с какими правами создаёшь пользователя для пула. Вопрос понятен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 12:03:13 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
авторочень смешно "и заведены оракляновским способом" хорошо, выразился неправильно. пользователей заводит админ базы данных оракл. то что это системные я вкурсе. тот же админ может дать право на select пользователю который возьмет и сделает вопрос ( select GRANTED_ROLE from SYS.DBA_ROLE_PRIVS where SYS.DBA_ROLE_PRIVS.GRANTEE = user ) - выполнив, знаем его роли, знаем роли можем сказать что он может делать а что нет. и это уже пошло отвлечение от темы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 12:11:21 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123svenom, как спец по АппСерверу, поясни - как ТЫ сам и с какими правами создаёшь пользователя для пула. Вопрос понятен?Вопрос понятен, хоть и не имеет отношения к топику Пользователя для пула я создам так же, как и любого другого пользователя - либо через EM, либо через SQL-скрипт под админскими правами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 12:11:39 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenomPetro123svenom, как спец по АппСерверу, поясни - как ТЫ сам и с какими правами создаёшь пользователя для пула. Вопрос понятен?Вопрос понятен, хоть и не имеет отношения к топику Пользователя для пула я создам так же, как и любого другого пользователя - либо через EM, либо через SQL-скрипт под админскими правами. конечно это оффф :) И всё таки, приведи скрипт. Я могу свои привести ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 12:24:21 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123 И всё таки, приведи скрипт. Зачем вам скрипт? Что вы хотите там увидеть? Пользователь, через которого идет подключение к БД в пуле, это ... обычный пользователь. Что вам не ясно то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 12:31:01 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenomPetro123 И всё таки, приведи скрипт. Зачем вам скрипт? Что вы хотите там увидеть? Пользователь, через которого идет подключение к БД в пуле, это ... обычный пользователь. Что вам не ясно то? проблема. Нету у оракле обычных. Зарезервированные роли - dba, connect, ... - есть Обычного UserAppServer нету. Не хош - не надо. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 12:35:20 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123проблема. Нету у оракле обычных. Зарезервированные роли - dba, connect, ... - есть Обычного UserAppServer нету.Да уж, проблема так проблема. Как же ее решить, мм? Наверное так: 1) Создать пользователяя, дать ему право на коннекшн и на все необходимые ему объекты БД (если таковые есть) 2) Войти под админом, создать вьюшки поверх SYS DBA_ROLE_PRIVS, DBA_USERS, DBA_ROLES 3) Под админом же дать доступ к этим вьюшкам вновь созданному пользователю: GRANT SELECT ON admin_view TO appSrvUser; Что вам еще непонятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 12:44:09 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
svenom, 1. Под админом, не в Java её называют админкой т.к. требуется роль dba 1.1 все объекты сложно, т.к. они меняются. Есть вариант рекурсией и вариант спец-ролей не на объекты а на права 2. будут ли вьюшки фильтровать или нет и выдадут рутовых тоже? 2.1 Если админ есть (НЕ ваш), то он это сделать не даст :) 3. Т.к. это пользователь пула, то ВСЕ юзвери будут иметь его права ЗЫ. В 2-х звенке так не пишут, т.к. если есть штатный админ: - скажет иметь минимум 2 роли и коннекта (админка и простые смертные) - попросит увести ОБЫЧНЫХ пользователей с таблицы рутовой на ОРМ-табличку В вебе, без админа, и когда БД - импотент, может быть всё что угодно. Даже инжекция select * from вьюха рутовые imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 12:58:05 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
1) Да 2) Как сделаете вьюшки, так и будут фильтровать. 2.1) Предположение/догадка. Игнорируем. 3) И что? Во-первых, это общепринятая практика - что пользователь пула видит юзеров и их роли в данном приложении, как иначе их аутентифицировать? Никак. То есть это нормально, что из под прав этого пользователя БД мы видим пользователей приложения . Во-вторых, в нормально спроектированном приложении его пользователи, разумеется, никак не смогут добраться до этих таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 13:09:51 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Petro123Без ... grant connect, dba to иииии их не увидетьС хренов ли не увидеть, если по умолчанию у представления - права создателя??? А вот права на представления - могут быть совершенно другими. P.S. Ни разу не сталкивались с suid-ными битами в хрюниксах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 13:25:40 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
в статье http://habrahabr.ru/blogs/java/92608/ авторВ файле domain.xml среди всего прочего описываются параметры jvm. Там можно найти тэг java-config. У него есть аттрибут classpath-suffix. Обычно он пуст. Вот туда-то нам и надо «вписаться». Например: ... <java-config classpath-suffix="/home/cy6ergn0m/.domains/domain1/lib/MyTestRealm.jar" ... .... поясните пож-та, к примеру написал я свой реалм, добавил в classpath-suffix, работает, все хорошо.. а если я или ктолибо другой захотел еще один реалм написать, то куда прописывать это дополнение (т.е. путь к jar)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 13:59:05 |
|
||
|
веб-приложение, авторизация
|
|||
|---|---|---|---|
|
#18+
Вladimir, там вроде сказано, что один реалм на домен? Не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 14:11:37 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2132661]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
51ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
2ms |
| others: | 335ms |
| total: | 546ms |

| 0 / 0 |
