私はherokuに展開されたSpring Boot Javaアプリケーションを持っています。自分の登録エンドポイントにhttpsだけでアクセスできることを確認したい。これまで私が知っていたherokuは、HTTPへのすべてのhttps接続を特別なヘッダ(X-forwarded-porto)でリダイレクトするロードバランサを使用しています。 Iam使用方法heroku:春の起動は、httpsのエンドポイントにのみアクセスします
compile("org.springframework.boot:spring-boot-starter-security")
暗号化ツール(ハッシングパスワード)用。私は "security.basic.enable"プロパティをfalseに設定しています(この場合、実際にはわかりません)。
がはすでにこれらの設定を設定しようとしました:
tomcat:
remote_ip_header: x-forwarded-for
protocol_header: x-forwarded-proto
私application.ymlに
を質問は、私が実際には、HTTPSリンクを介して使用するエンドポイントを強制する方法、ありますか? httpの場合、404などを返す可能性があります。私はそれを使用して任意のrefferenceを見つけるためにgradleとちょっと難しいを使用しています。 Googleで見つかったいくつかのことを試しましたが、うまくいかなかった(または正しく実装する方法がわかりません...)。私はまだ郵便配達員とhttpを介して私のエンドポイントにアクセスすることができました。 は今、それは次のようになります。
@Controller
@RequestMapping("/users")
public class AccountController {
@Autowired
private AccountRepository accountDao;
@RequestMapping(value = "/register", method = RequestMethod.POST, consumes = "application/json")
public ResponseEntity<Resource<Account>> createAccount(@RequestBody @Valid Account account) { ... }
私はその回答に1つの変更を加えます。リダイレクト文字列のリダイレクトでrequest.getPathInfo()をrequest.getPathInfo()== nullに変更しますか? "":request.getPathInfo()は、パス情報が正しくない場合を処理します。 – Ceekay