2
私はSpringブートアプリケーションでoauth2認可を使用してjdbc認証を取得しています。ここで がJDBC認証のための私のコードです:任意のユーザーとのjdbc認証でアクセスが拒否されました[OAUTH2]
auth.jdbcAuthentication().dataSource(dataSource)
.usersByUsernameQuery(
"select username, password, 1 from users where username = ?")
.authoritiesByUsernameQuery(
"select u.username, r.name from users u, roles r, role_users ru "
+ "where u.username = ? and u.id = ru.users_id and ru.roles_id = r.id ");
と私の許可の設定は次のようになります。私は私のデータベース内のユーザーで認証する場合
http.
anonymous().disable()
.requestMatchers().antMatchers("/api/v1/users/**")
.and().authorizeRequests()
.antMatchers("/api/v1/users/**").access("hasRole('ADMIN')")
.and().exceptionHandling().accessDeniedHandler(new OAuth2AccessDeniedHandler());
今、すべてが正常になります。 "ADMIN"というユーザーがいるので、/api/v1/users/**
リソースにアクセスできるようにする必要があります。
しかし、私はすべてaccess_denied
エラーです。私は間違って何をしていますか?より多くのコードスニペットを表示する必要があるかどうかを教えてください。私はあなたのすべての助けに感謝します。
よう
何かが今それを試してみました、それは動作しませんでした:(とにかくありがとう:) –
あなたのケースでは、これと同じようだ:https://dzone.com/articles/spring-security -4-authenticate-and-authorize-usersは、httpsecurityの設定を調べます(ここで説明するように、ルールの順番であっても、http://stackoverflow.com/questions/30819337/multiple-antmatcher-in-spring-security) – rick
何とか '/ api/v1/users/**'エンドポイントは動作しません。私はそれを '/ api/v1/users'に変更し、今アクセスが許可されます。しかし残念なことに、すべてのユーザー(「ADMIN」の役割を持たないユーザーも)。 –