2016-04-27 51 views
1

私は、これらの値を使用してJHipsterアプリケーションを生成した:JHipster:匿名ユーザーはエンティティを読み取ることができますが、更新はできません。

{ 
    "generator-jhipster": { 
    "jhipsterVersion": "3.1.0", 
    "baseName": "app", 
    "packageName": "my.app", 
    "packageFolder": "my/app", 
    "serverPort": "8080", 
    "authenticationType": "session", 
    "hibernateCache": "ehcache", 
    "clusteredHttpSession": "no", 
    "websocket": "no", 
    "databaseType": "sql", 
    "devDatabaseType": "h2Disk", 
    "prodDatabaseType": "mysql", 
    "searchEngine": "elasticsearch", 
    "buildTool": "gradle", 
    "enableSocialSignIn": false, 
    "rememberMeKey": "", 
    "useSass": true, 
    "applicationType": "monolith", 
    "testFrameworks": [], 
    "jhiPrefix": "jhi", 
    "enableTranslation": false 
    } 
} 

私は、匿名ユーザーがエンティティを表示できるようにしたいが、そのエンティティを更新または削除しないでしょう。私はconfigure(HttpSecurity http)メソッドでauthorizeRequests()permitAll(HttpMethod.GET,"/**")を追加するように生成されたSecurityConfiguration.javaファイルを編集しようとしました。エンティティにアクセスしようとすると、私はまだaccessdeniedに向けられています。

以前にこのユースケースに対処した人はいませんか?リソースにアクセスするための

+0

'configure(WebSecurity web) 'の方法では、' ignoring()。antMatchers(HttpMethod.GET、 "/ **") 'を無駄に追加しました。 –

答えて

3

SecurityConfiguration.javaconfigure(HttpSecurity http)方法

.and() 
     .authorizeRequests() 
     .antMatchers(HttpMethod.GET, "/api/**").permitAll() 

で角度のビューにアクセスするためには、/状態:各エンティティのために、コメントアウトするか、読み取り専用の状態についてauthoritiesプロパティを削除します。 src/main/webapp/app/entities/book/book.state.jsBookエンティティの例下:

.state('book', { 
     parent: 'entity', 
     url: '/book', 
     data: { 
      // authorities: ['ROLE_USER'], 
      pageTitle: 'monoApp.book.home.title' 
     }, 
     .... 
    }) 
    .state('book-detail', { 
     parent: 'entity', 
     url: '/book/{id}', 
     data: { 
      // authorities: ['ROLE_USER'], 
      pageTitle: 'monoApp.book.detail.title' 
     }, 

しかし、2つのことに注意を払う:SecurityConfigurationでこのようなパターンを使用することにより

  • 、あなたも/api/usersでユーザーを公開します。エンティティごとにpermitAll()を追加することで、公開するものを完全に制御できるようになります(ホワイトリストアプローチ)
  • エンティティの追加または削除のボタンが引き続き表示されるため、ユーザーエクスペリエンスが低下します。そこで、あなたはng-hideでそれらを隠すことができました。
+0

あなたの迅速な対応に感謝します!私は本当にjHipsterを楽しんでおり、あなたの素晴らしい貢献に感謝します。 –

+0

私はJhipster 4.3.0とAngular 4を実行していて、ブログ投稿をパブリック(匿名ユーザー)にしたいと考えています。私は、SecurityConfiguration.javaへのpermitAll()を削除し、権限を削除しました:['ROLE_USER'] from src/main/webapp/app/entities/entry/entry.route.tsしかし、私はそれを動作させることができません、何が間違っているのですか? – Martin

+0

あなた自身の質問をしてください –

関連する問題