2017-01-09 23 views
2

私は角度2のフロントエンドのスプリングブートを使用しています。私のアプリケーションは、認可のためにJWTフィルターを使用して、私が闊歩を限り、それがユーザーのブラウザには有効期限が切れていないとしてトークンを使用したいSpringfoxに認証ヘッダーを追加

@Configuration 
@EnableSwagger2 
public class SwaggerConfig { 

    @Bean 
    public Docket api() { 
     return new Docket(DocumentationType.SWAGGER_2) 

      .select()         
      .apis(RequestHandlerSelectors.basePackage("mybasepackage")) 
      .paths(PathSelectors.ant("/api/*")) 

      .build();           
    } 

} 

:よう

私の現在のspringfoxのセットアップが見えます。

私は、このようなHTMLファイルに追加できることを見た:私は、このオプションを持っていないSpringfoxを使用していますので

function addApiKeyAuthorization() { 
    var key = JSON.parse(localStorage.getItem("ls.authentication-token")); 
    if (key && key.trim() != "") { 
    var apiKeyAuth = new SwaggerClient.ApiKeyAuthorization("Authorization", "Bearer " + key, "header"); 
    window.swaggerUi.api.clientAuthorizations.add("bearer", apiKeyAuth); 
    log("Set bearer token: " + key); 
    } 
} 

。 Docket APIを使って追加できる方法はありますか? 、あなたのSwaggerConfigクラスで、AuthorizationヘッダにあなたのJWTトークンを追加し、次のBeanを追加するために

+0

? – jmattheis

+0

これはHTMLファイル – Bhetzie

答えて

2

2つの依存関係、springfox-swagger2とspringfox-swagger-uiがありました。私はspringfox-swagger-uiの依存関係を削除しました。

Jhipsterは、springfox-swagger2からパッケージ化されたswaggerファイルを呼び出します。私はこの例を少し変更して使用することができました。

swagger-ui設定を自分のパブリックフォルダに追加しました。私は今、HTMLファイルを生成する代わりに使用しているので、JavaScriptを使ってJWTトークンを設定することができます。

私のトークンは、JSONに保存されているので、私はやっていません。

var key = localStorage.getItem("MyTokenName"); 

の代わりに、あなたはspringfoxを使用しているので、あなたがそのオプションを持っていない理由

var key = JSON.parse(localStorage.getItem("MyTokenName")); 
2

@Bean 
public SecurityConfiguration security() { 
    return new SecurityConfiguration(null, // "client id", 
      null, // "client secret", 
      null, // "realm", 
      null, // "app", 
      "Bearer " + yourToken, ApiKeyVehicle.HEADER, "Authorization", "," /* scope separator */); 
} 

あなたはより多くの情報hereを見つけることができます。

+0

を生成しています。これは動作しませんでした:/ – Bhetzie

+0

2.1.3 Springfox-swagger2でSpring MVCとSpring Bootの章をチェックしてください。このSecurityConfiguration Bean宣言は、私のspring mvc + spring security + swagger + jwt実装で機能しました。 – haihui

関連する問題