Я пытаюсь настроить этот плагин без успеха. /api/login возвращает токен. Это длиннее 32 символов.grails spring rest plugin lack_scope
authResponse:[username:root, roles:[RADIO_ADMIN], expires_in:3600, token_type:Bearer, access_token:eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0NTc4MTg0MjAsInN1YiI6InJvb3QiLCJwcmluY2lwYWwiOiJINHNJQUFBQUFBQUFBSlZTc1U0YlFSQ2RNMFlnV1NJUUtaRW9vSUYwMFZraXBTc0RBWUVPRThWeFE2UkU2N3Zoc3JDM2UrenVnZDBnVjFCUWdDQklrZmdGXC9nU2FmRUNVRkdtcGFaazlNR2ZTb0d5MU5cL1B1dlRkdjl2SUdobzJHZDdGbVhCZ1wvRlZuTXBXOVN6V1ZzTU13MHQxMFwvTTZnanREbGlPUWUycUFMM3h5dUJGMENKUnhaZUJsdHNsMVVGazNGMXZiMkZvYTExTk13cEhUOHdibXFXNEo3UzJcLzRqZDZnMFBoRW9xTDJURW94c3dBUUxRNVZKMjFEeWZTZmxHcU1OR0M5cWdRcTNYZWxWU0IyVWxqTmhCcUVqS0ZsYllCUkFoV1gybXlKVmpzYkNpM3V6bWVXaTJrUmJDMkEwWmNhUXUzOG1hVnBuM2ZXZFRVa1Q3TUErbER1cFI0ZXllK09ndnVQeEY1UVFORFZYMHN5MlpLSWl2c21kT1BIM3BrNVwvSGxcLzBXaVVBeXVUdDhcLzhVOWNsNTZGMTl1WjNPZ1wvWkNDNjhIckJld1dpY2xOeE1GOHllTlR2blhqdzluNXplSG40ZEkyU0dXXC9uOGZzXC9XSDVMb0xLa21aWmxZTjdJaG85OHJ1VHVUeno1UDN0OUQxbXp4SkJkS0xraGFqUjRtQ21NWXRheVg2ZVZ1b2ZLd3ZycXhcL3JTK3VyVFRjTjNXVkpkV3hmR2kzTFQ5UXRLdWp2eWZYeHpPXC9pV0VWaG5lWnlKQXlIeTlBalN4cG96NjRQSitxZlA5emxFXC9RZjgxM01OWjJpaEVEQUFBPSIsInJvbGVzIjpbIlJBRElPX0FETUlOIl0sImlhdCI6MTQ1NzgxNDgyMH0.LrsAlhZ_bbWC1TKqHKCfeL0l9nZfgd_fMcsUb4Np24M]
Но если я пытаюсь вызвать обеспеченную конечную точку, как/API/радио Я всегда получал:
[message:Access is denied, timestamp:1457814018972, error:Forbidden, status:403, path:/api/radios]
[Server:[Apache-Coyote/1.1], WWW-Authenticate:[Bearer error="insufficient_scope"], Set-Cookie:[JSESSIONID=2AD3EF86B6BB1807747EBCCA98FB7DC8; Path=/; HttpOnly...]
Я настроил
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
[pattern: '/', access: ['permitAll']],
[pattern: '/error', access: ['permitAll']],
[pattern: '/index', access: ['permitAll']],
[pattern: '/index.gsp', access: ['permitAll']],
[pattern: '/shutdown', access: ['permitAll']],
[pattern: '/assets/**', access: ['permitAll']],
[pattern: '/**/js/**', access: ['permitAll']],
[pattern: '/**/css/**', access: ['permitAll']],
[pattern: '/**/images/**', access: ['permitAll']],
[pattern: '/**/favicon.ico', access: ['permitAll']],
[pattern: '/api/**', access: ['permitAll']],
[pattern: '/api/radios/**', access: ['RADIO_ADMIN']]
]
grails.plugin.springsecurity.filterChain.chainMap = [
// State less chain
[
pattern: '/api/**',
filters: 'JOINED_FILTERS,-anonymousAuthenticationFilter,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter'
],
[pattern: '/assets/**', filters: 'none'],
[pattern: '/**/js/**', filters: 'none'],
[pattern: '/**/css/**', filters: 'none'],
[pattern: '/**/images/**', filters: 'none'],
[pattern: '/**/favicon.ico', filters: 'none'],
[pattern: '/**', filters: 'JOINED_FILTERS']
]
Я использую следующий окр : Grails Версия: 3.1.3 Groovy Версия: 2.4.6 JVM Версия: 1.7.0_75
Что вы пытаетесь предложить, вы назвали свою роль «ROLE_RADIO_ADMIN»? – themathmagician
Оба, установите securityConfigType и добавьте свою роль в ROLE_ –
Моя роль называется ROLE_ADMIN, но это не решает проблему. Моя настройка немного отличается, я пытаюсь использовать filterchain и @Secured аннотацию: – themathmagician