2016-10-19 3 views
1

Я обращаюсь к приложению весны saml, используя shibboleth Единый вход. Вместо того, чтобы использовать файл samlkeystore.jks, я хочу создать свой собственный test.jks. Я создал сертификат JKS с помощью:Как создать файл JKS с использованием общедоступных и закрытых ключей для приложения spring saml?

openssl pkcs12 -export -name xxx -in selfsignedcert.crt -inkey serverprivatekey.key -out myp12keystore.p12 

Keytool for p12 > JKS 

keytool -importkeystore -destkeystore mykeystore.jks -srckeystore myp12keystore.p12 -srcstoretype pkcs12 -alias xxx 

Я сделал изменения в securityContaext.xml, как имя файла, пароль и псевдоним. Но при обращении к SP, я получаю ошибку, как:

Сообщение:

не удается войти исходящее сообщение, как не подписание удостоверений не установлен в контексте

StackTrace:

java.lang.IllegalArgumentException: не удается подписать исходящее сообщение, так как нет подпись учетных данных установлена в контексте в org.springframework.util.Assert.notNull (Assert.java:112)

Пожалуйста, помогите о том, как это исправить?

+0

Это может помочь вам: http://docs.spring.io /autorepo/docs/spring-security-saml/1.0.x-SNAPSHOT/reference/htmlsingle/#configuration-security-profiles – Alic

ответ

0

Если вы попытаетесь создать пару ключей без каких-либо преобразований p12 -> jks, это сработает?

keytool -genkeypair -alias myKey -keypass changeit -keystore mykeystore.jks 

И положил их на securityContext.xml Alias: MYKEY Пароль: changeit

Как это:

<bean id="keyManager" class="org.springframework.security.saml.key.JKSKeyManager"> 
     <constructor-arg value="classpath:security/mykeystore.jks"/> 
     <constructor-arg type="java.lang.String" value="changeit"/> 
     <constructor-arg> 
      <map> 
       <entry key="myKey" value="changeit"/> 
      </map> 
     </constructor-arg> 
     <constructor-arg type="java.lang.String" value="myKey"/> 
    </bean>