小编The*_*der的帖子

如何转换String至PublicKey?

我使用以下代码将公钥和私钥转换为字符串

KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
keyPairGen.initialize(2048);
KeyPair          keyPair    = keyPairGen.genKeyPair();
PublicKey        publicKey  = keyPair.getPublic();
PrivateKey       privateKey = keyPair.getPrivate();
String publicK = Base64.encodeBase64String(publicKey.getEncoded());
String privateK = Base64.encodeBase64String(privateKey.getEncoded());
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试将其转换回公共广告私钥

PublicKey publicDecoded = Base64.decodeBase64(publicK);
Run Code Online (Sandbox Code Playgroud)

我收到错误,无法从byte []转换为公钥.所以我试过这样的

PublicKey publicDecoded = new SecretKeySpec(Base64.decodeBase64(publicK),"RSA");
Run Code Online (Sandbox Code Playgroud)

这会导致如下错误

java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: Neither a public nor a private key
Run Code Online (Sandbox Code Playgroud)

看起来我在这里做了错误的密钥转换.任何帮助,将不胜感激.

java encryption cryptography public-key-encryption

13
推荐指数
1
解决办法
3万
查看次数

如何在Wildfly中定义Context Path?

我已经使用以下代码在tomcat中设置Context Path,我可以localhost:8080通过覆盖tomcat的默认路径直接访问我的应用程序.

<Context path="" docBase="G:\bitbucket\projectpath\project\build\libs\project-1.0" workDir="G:\bitbucket\projectpath\project\build\libs\project-1.0\work"  debug="0" reloadable="false" autoDeploy="true" unpackWARs="true" crossContext="true"/>
Run Code Online (Sandbox Code Playgroud)

现在我将使用wildfly-8.2.0作为运行时环境.我尝试直接粘贴.war文件G:\wildfly-8.2.0.Final\standalone\deployments,我可以在浏览器中访问我的项目localhost:8080/project-1.0.

我需要设置与wildfly相同的配置,就像我在tomcat中localhost:8080通过覆盖wildfly的默认欢迎页面来访问我的项目一样.我试图在野外飞行中做同样的事情,但我被困在哪里做到这一点.wildfly文件夹中有很多.xml文件(当与tomcat的简单server.xml文件进行比较时),我对从哪里开始感到困惑.我使用"如何在Wildfly中设置上下文路径"进行搜索,但没有成功.任何人都可以帮助我如何做到这一点..?如果它与编码有关,那么我可以做很多搜索,至少我可以得到一些想法,但我在配置中遇到了困难.提前致谢.

deployment jboss wildfly-8

12
推荐指数
1
解决办法
3万
查看次数

没有会话的Spring Boot基本认证(无状态会话)

我已将基本身份验证配置为Spring-Boot应用程序.一切都是Java Config,没有xml.

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        // Authenticate username -> admin, password -> admin & set role as "ROLE_USER"
        auth.inMemoryAuthentication().withUser("admin").password("admin").roles("USER");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests()
            .antMatchers("/login").permitAll()
            // All Requests should be Authenticated
            .anyRequest().authenticated()
            .and()
            // Enable Basic Authentication
            .httpBasic()
            .and()
            .formLogin()
                .loginPage("/login")
                .defaultSuccessUrl("/main", true)
                .loginProcessingUrl("/session")
                .usernameParameter("Username").passwordParameter("Password")
            .and()
            .logout().logoutUrl("/logout").permitAll()
            .and().csrf().disable();
    }

}
Run Code Online (Sandbox Code Playgroud)

它配置为基本身份验证和普通表单登录.当我在Firefox上测试Rest-Client的基本身份验证时,我可以访问安全URL"/ main".但在响应标题中,我得到了 …

java spring stateless-session spring-boot

8
推荐指数
2
解决办法
1万
查看次数

如何从Wildfly(Jboss)访问用于ws端点的CXF jar

我试图在Wildfly 8.2中部署我的war文件.我的应用程序使用org.apache.cxf进行Web服务.但Wildfly(Jboss)默认使用自己的cxf jar,它可以提供完整的Java EE支持.我可以消除jboss cxf并利用我自己的cxf jar进行Web服务

JBoss的部署,structure.xml

<jboss-deployment-structure>
    <deployment>
        <exclude-subsystems>
            <subsystem name="webservices" />
        </exclude-subsystems>
    </deployment>
</jboss-deployment-structure>
Run Code Online (Sandbox Code Playgroud)

但它会禁用jboss的ws支持,这意味着我甚至无法在Jboss管理控制台中找到ws端点.但我的客户需要利用jboss的ws功能构建,以便他可以随时禁用或启用任何ws调用.有没有人知道如何配置我的应用程序以利用jboss的cxf jar,以便我可以随时在Jboss管理控制台中调整我的ws.以下链接解释了我到目前为止所提到的完全相同的内容.我成功使用了第一个选项,但我需要它才能使用第二个选项.

http://cxf.apache.org/docs/application-server-specific-configuration-guide.html

注意:请参阅第一个主题(JBoss Application Server)

我似乎无法弄清楚如何配置我的应用程序来利用jboss的cxf jar ..!

如果我从build.gradle文件中删除所有org.apache.cxf依赖项,它会给出ClassNotFoundException错误,这实际上告诉我它可以找到cxf-transport jar.

Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: java.lang.ClassNotFoundException: org.apache.cxf.transport.servlet.CXFServlet
Run Code Online (Sandbox Code Playgroud)

如果我在build.gradle文件中包含org.apache.cxf依赖项,则表明它与jboss中也存在的cxf jar冲突.整个问题是我需要通过消除用户定义的cxf jar来利用jboss中存在的cxf来获得完整的Java EE支持.

deployment jboss web-services cxf wildfly-8

6
推荐指数
1
解决办法
6559
查看次数

如何在SOAPEnvelope中添加名称空间声明

在我的肥皂应用程序中,我正在使用apache cxf。

这是我的代码,它将数据提交到服务器。

import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.bus.spring.SpringBusFactory;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.ws.security.wss4j.DefaultCryptoCoverageChecker;
import org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor;
import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor;

SpringBusFactory bf = new SpringBusFactory();
URL              busFile = Submission.class.getResource(WSSEC_XML);    
File             f = new File(busFile.getPath());

Bus              bus = bf.createBus(busFile.toString());
BusFactory.setDefaultBus(bus);
BusFactory.setThreadDefaultBus(bus);

DefaultCryptoCoverageChecker coverageChecker = new DefaultCryptoCoverageChecker();

coverageChecker.setSignBody(true);
coverageChecker.setSignTimestamp(true);
coverageChecker.setEncryptBody(true);
coverageChecker.setSignAddressingHeaders(true);

MyClaimservice  service = new MyClaimservice();
Myclaims        port = service.getMyClaimsSoap11();
BindingProvider provider = (BindingProvider) port;
provider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, ENDPOINT_ADDRESS);
provider.getRequestContext().put(BindingProvider.SOAPACTION_URI_PROPERTY, SOAP_ACTION);

Client client = ClientProxy.getClient(port);

client.getOutInterceptors().add(new LoggingOutInterceptor());
client.getInInterceptors().add(new LoggingInInterceptor());
client.getInInterceptors().add(new WSS4JInInterceptor(getInProps())); …
Run Code Online (Sandbox Code Playgroud)

java ws-security soap web-services cxf

5
推荐指数
1
解决办法
8440
查看次数

启用Java以允许过期的证书

是否有任何命令行标志使Java允许过期的证书?

现在,由于证书已过期,我收到以下异常.

Caused by: java.security.cert.CertificateExpiredException: NotAfter: {PAST DATETIME}
at sun.security.x509.CertificateValidity.valid(CertificateValidity.java:274)
at sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:629)
at sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:602)
at org.apache.ws.security.validate.SignatureTrustValidator.validateCertificates(SignatureTrustValidator.java:103)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下命令行标志,它不会忽略证书过期检查

-Dcom.sun.net.ssl.checkRevocation=false
Run Code Online (Sandbox Code Playgroud)

我们的应用程序在路径下的tomcat中运行/myapplication.所以我创建了另一个应用程序/ignorecertificate并部署在同一个Tomcat的webapp文件夹中.根据这个问题中接受的答案,我在启动/ignoreexpired应用程序时运行以下代码.

// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[]{
    new X509TrustManager() {
        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return null;
        }
        public void checkClientTrusted(
            java.security.cert.X509Certificate[] certs, String authType) {
        }
        public void checkServerTrusted(
            java.security.cert.X509Certificate[] certs, String authType) {
        }
    }
};

// Install the all-trusting trust manager
try …
Run Code Online (Sandbox Code Playgroud)

java ssl keystore ssl-certificate

5
推荐指数
1
解决办法
6222
查看次数

引起:org.dom4j.DocumentException:org.dom4j.DocumentFactory无法强制转换为org.dom4j.DocumentFactory

我有一个使用hibernate> 4的gradle项目.如果我在Apache tomcat中运行我的war文件,我不会收到任何错误.但是当我在Wildfly 8.2中部署它时,我得到以下异常

Caused by: org.hibernate.InvalidMappingException: Error while parsing file: /G:/wildfly-8.2.0.Final/bin/content/mywar-1.0.war/WEB-INF/classes/com/mysite/
hbm/Role.hbm.xml
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildHibernateConfiguration(EntityManagerFactoryBuilderImpl.java:1182) [hibernate-ent
itymanager-4.3.7.Final.jar:4.3.7.Final]
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:848) [hibernate-entitymanager-4.3.7.Fi
nal.jar:4.3.7.Final]
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:845) [hibernate-entitymanager-4.3.7.Fi
nal.jar:4.3.7.Final]
        at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398) [hibernate-core-4.3.7.Final.jar:4.
3.7.Final]
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:844) [hibernate-entitymanager-4.3.7.Final.
jar:4.3.7.Final]
        at org.jboss.as.jpa.hibernate4.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44) [jipijapa-hibernate4-3-1.0.1.Final.jar:]
        at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:154) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
        ... 8 more
Caused by: org.hibernate.InvalidMappingException: Unable to read XML
        at org.hibernate.internal.util.xml.MappingReader.legacyReadMappingDocument(MappingReader.java:375) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
        at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:304) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
        at org.hibernate.cfg.Configuration.add(Configuration.java:518) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
        at org.hibernate.cfg.Configuration.add(Configuration.java:514) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
        at org.hibernate.cfg.Configuration.add(Configuration.java:688) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
        at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:726) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildHibernateConfiguration(EntityManagerFactoryBuilderImpl.java:1177) [hibernate-ent
itymanager-4.3.7.Final.jar:4.3.7.Final]
        ... 14 more
Caused by: org.dom4j.DocumentException: org.dom4j.DocumentFactory cannot be …
Run Code Online (Sandbox Code Playgroud)

deployment jboss war dom4j wildfly-8

4
推荐指数
1
解决办法
7905
查看次数

Golang "301 Moved Permanently" if request path contains additional slash

I have been using golang's default http.ServeMux for http route handling.

wrap := func(h func(t *MyStruct, w http.ResponseWriter, r *http.Request)) func(http.ResponseWriter, *http.Request) {
    return func(w http.ResponseWriter, r *http.Request) {
        h(t, w, r)
    }
}

// Register handlers with default mux
httpMux := http.NewServeMux()
httpMux.HandleFunc("/", wrap(payloadHandler))
Run Code Online (Sandbox Code Playgroud)

Assume this server is accessible via http://example.com/

Very few of my client's requests were of path http://example.com/api//module (note the extra slash) which is redirected as 301 Moved Permanently. Exploring inside golang's http ServeMux.Handler(r *Request) …

redirect http go http-status-code-301

4
推荐指数
1
解决办法
4220
查看次数

415 尝试在 Jax-RS 球衣中发送 FormData() 时的状态

我正在尝试使用 jquery ajax 发送附加到 FormData 的文件。在参考了一些 mozilla 和 IBM 的文档后,我想出了以下内容。

阿贾克斯代码:

var sessionId = $.cookie("referenceId");
var myFormData = { sessionId: sessionId,
                    cipherData: cipherData,   // Encrypted xml data
                    payslip: document.getElementById('payslip').files[0]};
var formData = new FormData();
for (var key in myFormData) {
    console.log(key, myFormData[key]);
    formData.append(key, myFormData[key]);
}
$.ajax({
    url : 'api/rootpath/childpath',
    type : 'POST',
    processData: false,
    contentType: false,    // Here the contentType is set to false, so what should I put at @Consumes in java code
    data : {
        formData: formData
    }, …
Run Code Online (Sandbox Code Playgroud)

java rest jquery jax-rs jersey

3
推荐指数
1
解决办法
3910
查看次数