子ページ
  • トラブルシューティング

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

...

  • aacli.shが実行できない問題の対処
    Shibboleth IdPにはaacli.shというコマンドがあり、任意のSP(entityID)と任意のユーザ名を引数に与えることでSPに送出される属性がXMLで取得できます。IdP 2.3.5 ~ IdP 2.3.8ではIdPに含まれるファイルが変更となった影響でそのまま実行すると NoClassDefFoundError となります。

    書式設定済み
    $ sudo -u tomcat /opt/shibboleth-idp/bin/aacli.sh --configDir /opt/shibboleth-idp/conf/ --principal=test001 --requester=https://sp.example.ac.jp/shibboleth-sp
    Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shibboleth.HandlerManager': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletRequest
           at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
                        :
    

    → 上記エラーが出力された場合はTomcatのjarファイルを参照するようにしてください。

    書式設定済み
    $ sudo ln -s $CATALINA_HOME/lib/servlet-api.jar /opt/shibboleth-idp/lib/

    → aacli.shコマンドの詳細は https://wiki.shibboleth.net/confluence/display/SHIB2/AACLI をご参照ください。
    → 参考情報 : 情報交換メーリングリストupki-fed:00419

    情報

    この問題はIdP 2.4.0で修正されました。https://issues.shibboleth.net/jira/browse/SIDP-557 "servlet-api-2.5.jar"のようなファイル名で自動的に /opt/shibboleth-idp/lib/ にコピーされているはずです。
    IdP 2.4.0にバージョンアップしたあとに以前作成した $CATALINA_HOME/lib/servlet-api.jar へのシンボリックリンクがある場合は削除してください。

  • IdP起動時のエラー

    アンカー
    amplt
    amplt

    IdPを起動時に下記のエラーが idp-process.log に出力されます。

    書式設定済み
    14:51:13.419 - INFO [edu.internet2.middleware.shibboleth.common.config.BaseService:158] - Loading new configuration for service shibboleth.RelyingPartyConfigurationManager
    14:51:13.506 - ERROR [edu.internet2.middleware.shibboleth.common.config.BaseService:188] - Configuration was not loaded for shibboleth.RelyingPartyConfigurationManager service, error creating components.  The root cause of this error was: org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.
    

    →上記のエラーは relying-party.xml にXML文法としての間違いがある場合に出力されます。
    →例えば relying-party.xml にパスフレーズ付きの証明書を設定するとき、パスフレーズに '&' や '<' を含む場合はこれらの文字列をそのまま設定することはできません。これらの文字を含む場合は文字参照で

    書式設定済み
    nopaneltrue

    &amp;

    書式設定済み
    nopaneltrue

    &lt;

    のように記述してください。

    • 誤ったパスフレーズ設定例

      書式設定済み
          <security:Credential id="IdPCredential" xsi:type="security:X509Filesystem">
              <security:PrivateKey Password="myKeyPa$$word&">
                      /opt/shibboleth-idp/credentials/server-enc.key
              </security:PrivateKey>
      
    • 正しいパスフレーズ設定例

      書式設定済み
          <security:Credential id="IdPCredential" xsi:type="security:X509Filesystem">
              <security:PrivateKey Password="myKeyPa$$word&amp;">
                      /opt/shibboleth-idp/credentials/server-enc.key
              </security:PrivateKey>
      

...

  • SP起動時のエラー
    SPを起動時に下記のエラーが出力されます。

    書式設定済み
    $ sudo /etc/init.d/shibd start
    Starting shibd: configuration is invalid, check console for specific problems
                                                               [FAILED]
    

    また /var/log/shibboleth/shibd.log には下記のエラーが出力されています。

    書式設定済み
    2013-02-12 14:36:06 ERROR XMLTooling.ParserPool : fatal error on line 105, column 145, message: expected entity name for reference
    2013-02-12 14:36:06 ERROR Shibboleth.Config : error while loading resource (/etc/shibboleth/shibboleth2.xml): XML error(s) during parsing, check log for specifics
    2013-02-12 14:36:06 FATAL Shibboleth.Config : caught exception while loading configuration: XML error(s) during parsing, check log for specifics
    

    →上記のエラーは shibboleth2.xml にXML文法としての間違いがある場合に出力されます。
    →例えばCredentialResolverにパスフレーズ付きの証明書を設定するとき、パスフレーズに '&' や '<' を含む場合はこれらの文字列をそのまま設定することはできません。これらの文字を含む場合は文字参照で

    書式設定済み
    nopaneltrue

    &amp;

    書式設定済み
    nopaneltrue

    &lt;

    のように記述してください。

    • 誤ったパスフレーズ設定例

      書式設定済み
      <CredentialResolver type="File" key="cert/server-enc.key" certificate="cert/server-enc.crt" password="myKeyPa$$word&"/>
      
    • 正しいパスフレーズ設定例

      書式設定済み
      <CredentialResolver type="File" key="cert/server-enc.key" certificate="cert/server-enc.crt" password="myKeyPa$$word&amp;"/>