我有一个使用Java Spring MVC构建的Web应用程序.
我只是设置连接到LDAP服务器进行身份验证的spring security.
我已成功设置它,以便我能够登录到我的应用程序,但我找不到任何帮助我将AD组映射到Java中的用户角色,因为我只能获得403禁止页面,即我已经过身份验证但尚未拥有权限.
我目前有:
<http auto-config="true">
<intercept-url pattern="/**" access="ROLE_USER" />
</http>
<ldap-server id="ldapServer" url="LDAPURL" manager-dn="USER" manager-password="PASSWORD" />
<authentication-manager >
<ldap-authentication-provider
group-search-base="OU=GROUPS"
group-search-filter="sAMAccountName={0}"
user-search-base="OU=USERS"
user-search-filter="sAMAccountName={0}"
/>
</authentication-manager>
Run Code Online (Sandbox Code Playgroud)
假设该用户是AD组g-group-UK-user的一部分,那么我希望能够将该AD组映射到ROLE_USER,以便用户可以看到整个Web应用程序.
我似乎只能找到非常简单的示例,其中组是ADMIN或USER,在这种情况下,前缀ROLE刚刚添加到组中,或者其他方法似乎使用UserDetailContextMapper但我无法清楚地使用它.
我遇到了一个经典问题,即尝试在weblogic服务器上运行Web应用程序并因为weblogic服务器具有旧的类副本而遇到错误.
我遇到的主要问题是在尝试使用JPA 2.1时遇到以下问题:
weblogic.application.ModuleException: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
Run Code Online (Sandbox Code Playgroud)
这里显而易见的答案是它在没有该类的服务器上使用JPA版本.
我已将weblogic.xml文件设置为以下内容:
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" 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 http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.7/weblogic-web-app.xsd">
<wls:weblogic-version>12.1.3</wls:weblogic-version>
<wls:jsp-descriptor/>
<wls:debug>true</wls:debug>
</wls:jsp-descriptor>
<wls:container-descriptor>
<wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
</wls:container-descriptor>
<wls:context-root>DiscoveryPortal</wls:context-root>
</wls:weblogic-web-app>
Run Code Online (Sandbox Code Playgroud)
关键线是:prefer-web-inf-classes:true
这似乎适用于某些课程但不是全部.
我正在尝试在 python 中使用 cx_Oracle 并行运行完全独立的 Oracle 查询。
我可以通过为每个线程设置一个新的数据库连接,然后在每个单独的线程中运行查询来成功地完成这项工作,这使总时间从大约 2 分钟到 1 分钟 20 分,所以它肯定可以工作。查询时间:
START_TIME END_TIME
17-FEB-16 22.33.28.000000000 17-FEB-16 22.33.30.000000000
17-FEB-16 22.33.30.000000000 17-FEB-16 22.33.33.000000000
17-FEB-16 22.33.33.000000000 17-FEB-16 22.33.36.000000000
17-FEB-16 22.33.36.000000000 17-FEB-16 22.33.36.000000000
17-FEB-16 22.33.36.000000000 17-FEB-16 22.34.08.000000000
17-FEB-16 22.34.08.000000000 17-FEB-16 22.34.26.000000000
17-FEB-16 22.34.26.000000000 17-FEB-16 22.34.27.000000000
17-FEB-16 22.34.27.000000000 17-FEB-16 22.34.29.000000000
Run Code Online (Sandbox Code Playgroud)
但是,在每个线程中设置与数据库的连接会产生开销,我很确定我应该能够为每个线程创建一个新游标并共享连接,如下所示:
http://www.oracle.com/technetwork/articles/vasiliev-python-concurrency-087536.html
但是,当我共享连接并使用单独的游标时会发生什么情况是查询全部同时开始然后同时结束,因此看起来在生成线程时,在数据库上查询仍在按顺序运行. 查询时间:
START_TIME END_TIME
17-FEB-16 22.36.32.000000000 17-FEB-16 22.38.21.000000000
17-FEB-16 22.36.32.000000000 17-FEB-16 22.38.21.000000000
17-FEB-16 22.36.32.000000000 17-FEB-16 22.38.21.000000000
17-FEB-16 22.36.31.000000000 17-FEB-16 22.38.21.000000000
17-FEB-16 22.36.31.000000000 17-FEB-16 22.38.21.000000000
17-FEB-16 22.36.31.000000000 17-FEB-16 22.38.21.000000000
17-FEB-16 22.36.31.000000000 …Run Code Online (Sandbox Code Playgroud) 我有两个不同的工作人员,我想与我在Heroku中的Web应用程序一起运行。
我目前在procfile中有以下内容:
web: gunicorn project:app
worker: python project/worker/worker.py
worker: python project/worker/processor.py
Run Code Online (Sandbox Code Playgroud)
但它只运行网络和最后一个工作处理器,因为这是我在dynos下只能看到的那些处理器。我究竟做错了什么?