Spring Authorization Server对接AppAuth时静态资源404问题求助
问题原因
你配置的重定向URI /app.myApp:/oauth2redirect 格式错误,开头的斜杠导致Spring Authorization Server将其识别为HTTP静态资源路径,而非Android自定义Scheme跳转地址,因此触发了静态资源查找的404异常。
解决步骤
修正Spring Authorization Server客户端重定向URI配置
将配置中带斜杠的Scheme地址改为无开头斜杠的格式:redirect-uris: - "https://my-domain/auth/oauth2/code" - "https://my-domain/auth/oauth2/access_token" - "app.myApp:/oauth2redirect"修正Android端AppAuth的重定向URI
在AuthorizationRequest构建时,同步去掉重定向URI开头的斜杠:fun oauth2Login() { val config = AuthorizationServiceConfiguration( parse(BuildConfig.authorizedUri), parse(BuildConfig.tokenUri) ) val authorizationRequest = AuthorizationRequest.Builder( config, BuildConfig.clientId, ResponseTypeValues.CODE, parse("app.myApp:/oauth2redirect") ) .setScope("end-user") .build() val loginIntent = (requireActivity() as MainActivity).service.getAuthorizationRequestIntent(authorizationRequest) (requireActivity() as MainActivity).launcher.launch(loginIntent, ActivityOptionsCompat.makeBasic()) }确认AndroidManifest的Intent-Filter配置
确保处理跳转的Activity配置了正确的intent-filter,拦截自定义Scheme请求:<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="app.myApp" android:path="/oauth2redirect" /> </intent-filter> </activity>
完成以上修改后,Spring Authorization Server会正确识别该地址为外部Scheme跳转,不再尝试作为静态资源处理,登录完成后即可正常跳回Android应用。
内容的提问来源于stack exchange,提问作者Eran Friedland
相关产品推荐
相关产品推荐

