我是春天安全的新手我已经在教程中完成了所有工作,但我得到了这个例外.
我有一个简单的Spring Security + JSF Web应用程序:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/security-config.xml</param-value>
</context-param>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--JSF -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
security-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
<security:http>
<security:intercept-url pattern="/admin" access="ROLE_USER"/>
</security:http>
<security:authentication-manager>
<security:authentication-provider>
<security:user-service>
<security:user name="sajjad" password="414141" authorities="ROLE_USER"/>
</security:user-service>
</security:authentication-provider>
</security:authentication-manager>
</beans>
Run Code Online (Sandbox Code Playgroud)
这spring-config.xml
是空的.
这是我的依赖项:
<!-- Spring --> …
Run Code Online (Sandbox Code Playgroud) 我几天前下载了最新的1.8.65 JDK,缺少javac文件
如果有人认为我意外地下载了JRE,这里有两个截图
当我浏览到我安装JDK的目录时
C:\Enwicklung\JDK\1.8.65\bin
Run Code Online (Sandbox Code Playgroud)
javac.exe文件不在那里,正如您在第二个屏幕截图中看到的那样
谁能证实这一点?试图第二次安装JDK而不做任何改动.
编辑:当然我搜索了整个驱动器的javac.exe,没有找到匹配项
这主要是为了提高认识并推动Eclipse团队的某些错误.
ENV:
它似乎在相当大的Java源文件(1-2klines)上,在任何地方键入任何代码都会导致
我试图禁用自动完成,行打印和其他功能,减少或增加eclipse.ini上的内存设置,但没有解决它.
其他人有同样的问题吗?
Eclipse Bugzilla搜索查询.
我们正在使用IBM捆绑的Apache Wink为我们的应用程序提供JAXRS端点.我们正在编写Websphere 8.5.5.由于我们符合servlet 3.0,因此我们使用"编程"方式配置JaxRS应用程序,这意味着web.xml中没有条目,我们依赖类扫描来注释jax rs资源.一般来说它工作正常.
@ApplicationPath("/api/v1/")
public class MyApplication extends Application{
Run Code Online (Sandbox Code Playgroud)
这个版本的Websphere和Apache Wink一起使用Jackson 1.6.x进行JSON de/serialization,一般来说效果很好.我们希望改变Object Mapper的一些默认值
因此,我们定义了一个客户上下文解析器,只需更改一些se/deserialzation属性.
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class CustomJackssonConverter implements ContextResolver<ObjectMapper> {
final ObjectMapper defaultObjectMapper;
public AibasJackssonConverter() {
defaultObjectMapper = createDefaultMapper();
}
...
mapper.getSerializationConfig().set(SerializationConfig.Feature.INDENT_OUTPUT, true);
Run Code Online (Sandbox Code Playgroud)
在JAX-RS调用期间,我们可以看到容器注册了新的Provider,没有错误
问题是,配置没有"跟随",从日志中我可以看到Wink引擎正在查找WinkJacksonProvider,而这反过来又回复了一个遵循Jackson(s)默认值的JacksonProvider?
有没有办法只更改此默认值?
我试图更改此处所示的Application对象的实现,以便以编程方式配置Providers,但它不起作用.
http://www.ibm.com/developerworks/java/library/wa-aj-jackson/index.html
任何提示或提示?
非常感谢
其中一个测试使用本机库:
System.loadLibrary("mylib");
Run Code Online (Sandbox Code Playgroud)
libmylib.so
位于/usr/local/lib
,所以我在配置VM选项中添加此目录:-Djava.library.path=/usr/local/lib
但是,当我使用Maven运行测试时,此行抛出UnsatisfiedLinkError
:
没有
mylib
在java.library.path
在没有此选项的情况下调用Java:
/usr/lib/jvm/java-8-oracle/bin/java -Dmaven.home=/opt/idea/plugins/maven/lib/maven3 -Dclassworlds.conf=/opt/idea/plugins/maven/lib/maven3/bin/m2.conf -Didea.launcher.port=7538 -Didea.launcher.bin.path=/opt/idea/bin -Dfile.encoding=UTF-8 -classpath /opt/idea/plugins/maven/lib/maven3/boot/plexus-classworlds-2.4.jar:/opt/idea/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain org.codehaus.classworlds.Launcher -Didea.version=15.0.3 test
Run Code Online (Sandbox Code Playgroud)
System.getProperty("java.library.path")
捕获异常时打印/opt/idea/bin::/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
.显然,运行配置中的VM选项对maven任务没有影响.
所以我尝试在Maven的VM选项中设置库路径:设置 - >构建,执行,部署 - >构建工具 - > Maven-> Runner-> VM选项.此选项对java调用命令有影响:
/usr/lib/jvm/java-8-oracle/bin/java -Djava.library.path=/usr/local/lib -Dmaven.home=/opt/idea/plugins/maven/lib/maven3 -Dclassworlds.conf=/opt/idea/plugins/maven/lib/maven3/bin/m2.conf -Didea.launcher.port=7539 -Didea.launcher.bin.path=/opt/idea/bin -Dfile.encoding=UTF-8 -classpath /opt/idea/plugins/maven/lib/maven3/boot/plexus-classworlds-2.4.jar:/opt/idea/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain org.codehaus.classworlds.Launcher -Didea.version=15.0.3 test
Run Code Online (Sandbox Code Playgroud)
但即使现在使用此选项调用Java,它仍然无法加载库,并且System.getProperty("java.library.path")
仍然包含相同的内容!
如何设置java.library.path
使用Maven调用的测试?
我正在使用 maven-shade-plugin 创建一个可执行 jar,其中包含项目的所有依赖项。有时,这些依赖项会带来自己的依赖项,与其他库的依赖项发生冲突,并且 maven-shade-plugin 警告我不确定要在 uber jar 中包含哪个版本。
[WARNING] maven-shade-plugin has detected that some .class files
[WARNING] are present in two or more JARs. When this happens, only
[WARNING] one single version of the class is copied in the uberjar.
[WARNING] Usually this is not harmful and you can skeep these
[WARNING] warnings, otherwise try to manually exclude artifacts
[WARNING] based on mvn dependency:tree -Ddetail=true and the above
[WARNING] output
Run Code Online (Sandbox Code Playgroud)
一般来说,我对此警告的回应是使用<exclusions>
pom 文件中依赖项声明的元素从我的项目中删除有问题的依赖项:
<!-- Amazon ElastiCache Client --> …
Run Code Online (Sandbox Code Playgroud) 一般情况:一个通过EJB(3.1)公开其服务的简单应用程序 - 大多数是无状态会话bean(这里没什么好玩的)和基于SWING的客户端,通过远程接口调用这些服务并完成他们必须做的事情.
安全性:我想验证/授权此循环调用,当然还要保护我的服务.显而易见的答案是在服务器中使用JAAS以及在底层服务器上进行任何自定义布线设置.这仍然是一种选择
Apache Shiro:很多人都在谈论Apache Shiro,事实上它有一个非常简单的API和机制 - 可能与应用程序服务器无关.
技术问题:
会话:在我的情况下,我没有HTTP会话 - 从我所理解的Shiro至少需要某种我需要传递的SESSION ID.在我的RMI/IIOP中注入用户凭据的任何好方法都可以调用服务器而不会污染我的业务API?
服务器端实现:对于我所经历的少数资源,我认为我可以通过从Singleton Ejb 3.1 bean"引用它"来实现Shiro DefaultSecurityManager.还有其他想法吗?然后我可以轻松地创建一个拦截器并将其添加到我的远程调用 - 所以当一个新的调用通过我的远程EJB方法 - Shiro Intereceptor来验证我的用户或检查特定的权限.
任何评论/提示/示例?
非常感谢
我目前正在将 liquibase 与基于 SQL 的变更集一起使用,其中大多数都包含 INSERT 语句。根据文档,这种类型的更新操作不会产生(通过工具)自动回滚语句。
我的问题是(我可能遗漏了一些东西),因为我们可以声明某个变更集可以在数据库事务的上下文中运行,如果在应用变更集期间发生错误,该工具(liquibase)是否可以只发出事务回滚对于这个特定的变更集?
我的情况是,目前所有这些脚本都是开发过程的一部分,这些脚本尚未最终确定,这意味着有人更改了内容,我们从头开始回复它们。如果在 2000 行的插入脚本中,SQL 中有错误,我希望该工具自动回滚当前事务而不提交数据库中的更改。
非常感谢您的任何提示
我正在尝试设置Jersey 2 servlet应用程序.目标是仅将一些URL映射到Jersey REST API,而其他URL则提供静态内容.
我mvn compile war:war
用来生成战争并部署它.部署工件时会发生以下错误:
[2016-01-09 02:50:21,617] Artifact Test.war: Artifact is being deployed, please wait...
2016-01-09 14:50:25.823:WARN:oejd.DeploymentManager:Scanner-1: Unable to reach node goal: started
java.lang.NoClassDefFoundError: org/glassfish/jersey/server/spi/Container
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at org.eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:549)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:475)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:428)
at org.eclipse.jetty.util.Loader.loadClass(Loader.java:86)
at org.eclipse.jetty.servlet.BaseHolder.doStart(BaseHolder.java:95)
at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:347)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:892)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:346)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1380)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:772)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:259)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:518)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) …
Run Code Online (Sandbox Code Playgroud) java ×4
maven ×3
apache-wink ×1
dependencies ×1
eclipse ×1
editor ×1
ejb-3.0 ×1
installation ×1
jackson ×1
jax-rs ×1
jboss ×1
jersey-2.0 ×1
jetty ×1
jsf ×1
lag ×1
liquibase ×1
macos ×1
shiro ×1
spring ×1
swing ×1
testing ×1
websphere-8 ×1
windows ×1