2

GAE には、メールのテーブルを検索し、メールごとにプッシュ キュー ワーカーを介してそれらのメールの送信を開始する cron ジョブがあります。

// Worker method body
MailService m = MailServiceFactory.getMailService();
m.sendToAdmins(new MailService.Message(fromAddress, "", subject, content));

まず、メールの送信についてお聞きしたいのですが、メールの送信はキューに入れられたジョブであるという GAE ドキュメントを読みました。

メール サービスはメッセージをキューに入れ、送信を試みます。送信先のメール サーバーが使用できない場合は再試行する可能性があります。エラーとバウンス メッセージは、電子メール メッセージの送信者アドレスに送信されます。

以前のキューがキューと同じように機能している場合、プッシュ キューを使用しないというオプションはありますか?

しかし、それでも将来の機能にプッシュキューを使用したいので、主な問題は次のとおりです。チームリーダーが春のセキュリティを使用してセキュリティ部分を行い、タスクが機能していません。そして、各タスクごとの出力:

Dec 12, 2012 8:44:2 AM com.google.apphosting.utils.jetty.AppEngineAuthentication$AppEngineAuthenticator authenticate
INFO: Returning NOBODY because of SkipAdminCheck.

私が次のようにコメントしたとき、それらはうまく機能したことに注意してください:

<filter>
  <filter-name>springSecurityFilterChain</filter-name>
  <filter-class> org.springframework.web.filter.DelegatingFilterProxy</filterclass>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

では、その理由は何だと思いますか?セキュリティを損なうことなくタスクキューを機能させる方法はありますか?

4

1 に答える 1

1

spring-security.xml (Spring Security Layer) に以下を追加して、同僚と修正しました。

<http use-expressions="true" entry-point-ref="authenticationEntryPoint">
<intercept-url pattern="/queuecontroller/**" access="permitAll" />

web.xml (アプリ エンジン セキュリティ レイヤー) でその周りに制約を追加します。

<security-constraint>
    <web-resource-collection>
      <web-resource-name>any-resource</web-resource-name>
      <url-pattern>/emailcontroller</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>admin</role-name>
    </auth-constraint>
    <user-data-constraint>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
于 2012-12-12T14:12:24.207 に答える