在Spring Security Java Config中创建多个HTTP部分

使用Spring Security XML配置,您可以定义多个HTTP元素,以便为应用程序的不同部分指定不同的访问规则。 8.6高级命名空间配置中给出的示例定义了应用程序的单独的有状态和无状态部分,前者使用会话和表单登录,后者不使用会话和BASIC身份validation: 我无法弄清楚如何使用Java Config做同样的事情。 重要的是我禁用会话并为我的Web服务使用不同的入口点。 现在我有以下内容: @Override public void configure(WebSecurity security) { security.ignoring().antMatchers(“/resource/**”, “/favicon.ico”); } @Override protected void configure(HttpSecurity security) throws Exception { security .authorizeRequests() .anyRequest().authenticated() .and().formLogin() .loginPage(“/login”).failureUrl(“/login?loginFailed”) .defaultSuccessUrl(“/ticket/list”) .usernameParameter(“username”) .passwordParameter(“password”) .permitAll() .and().logout() .logoutUrl(“/logout”).logoutSuccessUrl(“/login?loggedOut”) .invalidateHttpSession(true).deleteCookies(“JSESSIONID”) .permitAll() .and().sessionManagement() .sessionFixation().changeSessionId() .maximumSessions(1).maxSessionsPreventsLogin(true) .sessionRegistry(this.sessionRegistryImpl()) .and().and().csrf() .requireCsrfProtectionMatcher((r) -> { String m = r.getMethod(); return !r.getServletPath().startsWith(“/services/”) && (“POST”.equals(m) || […]

如何从Java调用C ++?

我想从Java调用C ++方法。 我读到了JNI,但我没有得到如何获取所有库文件以及我应该保留它以便从命令行运行程序。 有没有办法从Eclipse本身调用C ++方法,因为我用它来运行Java类。

带有opensc pkcs#11提供程序的java keytool仅适用于启用调试选项

我在ubuntu 11.10上使用OpenJDK运行最新的opensc 0.12.2(java版本“1.6.0_22”) 我可以阅读我的智能卡(飞天ePass PKI) pkcs15-tool –dump 现在我尝试使用带有keytool的智能卡: keytool -providerClass sun.security.pkcs11.SunPKCS11 \ -providerArg /etc/opensc/opensc-java.cfg \ -keystore NONE -storetype PKCS11 -list 这会导致错误: keytool error: java.security.KeyStoreException: PKCS11 not found java.security.KeyStoreException: PKCS11 not found at java.security.KeyStore.getInstance(KeyStore.java:603) at sun.security.tools.KeyTool.doCommands(KeyTool.java:621) at sun.security.tools.KeyTool.run(KeyTool.java:194) at sun.security.tools.KeyTool.main(KeyTool.java:188) Caused by: java.security.NoSuchAlgorithmException: PKCS11 KeyStore not available at sun.security.jca.GetInstance.getInstance(GetInstance.java:159) at java.security.Security.getImpl(Security.java:696) at java.security.KeyStore.getInstance(KeyStore.java:600) … 3 more […]

自签名X509证书与Java中的Bouncy Castle

我需要在Java中创建一个带有Bouncy Castle的自签名X509证书,但我尝试包含的每个类都已弃用。 我怎么解决这个问题? 是否还有其他课程要包括在内? 谢谢

在64位java中使用long而不是int会有好处

在64位VM中,使用long而不是int会在性能方面做得更好,因为java中的long是64位,因此在64位系统中拉动和处理64位字可能更快。 (我期待很多NO,但我正在寻找详细的解释)。 编辑 :我暗示“在64位系统中拉动和处理64位字可能比在32位字中拉32位字更快”因为我假设在64位系统中,拉32位数据需要你先得到64位位字然后屏蔽前32位。

如何反映jackson在几秒钟内的时间戳?

我有一些JSON在几秒钟内有时间戳(即Unix时间戳): {“foo”:”bar”,”timestamp”:1386280997} 要求jackson将其反序列化为具有时间戳的DateTime字段的对象,结果是1970-01-17T01:11:25.983Z ,这是纪元之后不久的一段时间,因为jackson认为它是以毫秒为单位 。 除了撕掉JSON并添加一些零之外,我怎样才能让jackson了解秒时间戳?

旧的JaxB和JDK8 Metaspace OutOfMemory问题

我们正在开发自10年以来开发的业务应用程序(100万+ LOC)。 在切换到JDK8时,我们遇到了JDK8的元空间问题。 这似乎与com.sun.xml.ws:webservices-rt:1.4(Metro 1.4)中引用的JaxB-Version有关。 由于应用程序中的密切链接以及通过JaxB创建类/实例的传统,因此在旧库中快速切换并不简单。 目前我们正在研究这个问题。 我们创建了一个重现此行为的示例程序: import java.io.ByteArrayInputStream; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class X { private static final String XML = “”; @XmlAttribute String test; public static void main( String[] args ) throws JAXBException, InterruptedException { System.out.println(“start”); while ( true ) { JAXBContext jc = […]

使用HttpClient进行HTTP连接池

如何使用HttpClient创建连接池? 我必须经常连接到同一台服务器。 是否值得创建这样的游泳池? 是否可以保持实时连接并将其用于各种请求,如果是,我该怎么办? 我正在使用Apache HTTP Client开发Java。

Javareflection:按声明顺序获取字段和方法

有没有办法按照声明的顺序使用reflection获取类声明的字段(和方法)? 根据文档, getFields() , getDeclaredFields()等返回的Methods和Fields的顺序是未定义的。 使用Javareflection中建议的注释可以指定像索引之类的东西:类字段和方法的顺序是否标准化? 有没有更好的选择,即不必手动指定索引? 现在在你问我需要什么之前:我们有一个方法,它将一个非常大的数据结构作为输入,并对其进行冗长的计算。 为了创建unit testing,我们创建了一个方法,该方法接受输入对象和输出实例,并创建Java源代码(设置输入,调用计算方法,然后断言正确的结果)作为输出。 当字段按声明顺序写入时,此代码更易读。

是否可以在不调用构造函数的情况下在Java中创建对象的实例?

我正在尝试修复我的一个程序中的错误,我认为这可能是由于Hibernate确定如何在不调用其默认(或任何其他)构造函数的情况下实例化对象的实例。