0

POST メソッドで /api/v1/cart を使用してカートを作成するための残りの API を呼び出そうとしています。顧客IDの有無にかかわらず試しました。しかし、まだエラーに直面しています。構成する必要がありますか?? どんな助けでも素晴らしいでしょう。以下はjettyサーバーのスタックレースです

HTTP エラー 500

/api/v1/cart へのアクセスに問題があります。理由:

    XSRF トークンの不一致 (null)。セッションの有効期限が切れている可能性があります。

のせいで:

org.broadleafcommerce.common.exception.ServiceException: XSRF トークンの不一致 (null)。セッションの有効期限が切れている可能性があります。org.broadleafcommerce.common.security.service.ExploitProtectionServiceImpl.compareToken(ExploitProtectionServiceImpl.java:122) で org.broadleafcommerce.common.security.handler.CsrfFilter.doFilter(CsrfFilter.java:79) で org.springframework.security.web .FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter (FilterChainProxy.java:342) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) で org.springframework.security.web.

--

ありがとう、スネハ

4

1 に答える 1

1

web.xmlサイトのが上記applicationContext-rest-api.xmlのリストに含まれていることを確認します。で始まるすべてのパスの r を除外します。patchConfigLocations applicationContext-security.xmlapplicationContext-rest-api.xmlblCsrfFilte/api/

<!-- Set up Spring security for the RESTful API -->
<sec:http pattern="/api/**" create-session="stateless">
    <sec:http-basic />
    <sec:custom-filter ref="blRestPreSecurityFilterChain" before="CHANNEL_FILTER"/>
    <sec:custom-filter ref="blRestCustomerStateFilter" after="REMEMBER_ME_FILTER"/>
    <sec:custom-filter ref="blRestPostSecurityFilterChain" after="SWITCH_USER_FILTER"/>
</sec:http>

その部分がない場合、Spring Security は blCsrfFilter をセキュリティ フィルター チェーンにスローします。これはサイトに必要ですが、Rest API では除外する必要があります。applicationContext-security.xml から:

<sec:http auto-config="false" authentication-manager-ref="blAuthenticationManager" disable-url-rewriting="true">
    <!-- We handle session fixation protection ourselves  -->
    <sec:session-management session-fixation-protection="none" />

   <!-- .................................. -->
   <!-- Other configuration excluded -->
   <!-- .................................. -->

    <!-- Specify our custom filters -->
    <sec:custom-filter ref="blPreSecurityFilterChain" before="CHANNEL_FILTER"/>
    <sec:custom-filter ref="blCsrfFilter" before="FORM_LOGIN_FILTER"/>
    <sec:custom-filter ref="blSessionFixationProtectionFilter" before="SESSION_MANAGEMENT_FILTER"/>
    <sec:custom-filter ref="blPostSecurityFilterChain" after="SWITCH_USER_FILTER"/>
</sec:http>
于 2014-06-27T10:05:23.687 に答える