사용자 지정 인증 프로그램이 있으며 다른 응용 프로그램에 사용자/암호를 노출하고 싶습니다. 임의의 응용 프로그램에서 자격 증명을 얻지 못하도록하려면 내 사용자 지정 인증 기의 getAuthToken()
메서드에서 사용 권한 확인과 같은 작업을 수행하고 싶습니다. 올바른 방법은 무엇입니까? 사용자 지정 인증 프로그램에서 사용 권한 확인
난이 시도
,<permission android:name="com.vmware.horizon.AUTH" />
그러나 "com.whatever.AUTH은"내 인증을 호스팅하는 응용 프로그램에 정의되어
int p = context.checkCallingPermission("com.whatever.AUTH");
if (p != PackageManager.PERMISSION_GRANTED) {
, 내 테스트 응용 프로그램에서이없는 거기에
uses-permission
내가 계정을 요청할 때,
AccountManagerFuture<Bundle> future = am.getAuthToken(new Account(
"com.whatever", "com.whatever"),
"com.whatever", new Bundle(), this,
new AccountManagerCallback<Bundle>() {
@Override
public void run(AccountManagerFuture<Bundle> future) {
String token = result.getString(AccountManager.KEY_AUTHTOKEN);
}
}, handler);
내가 성공적으로 obta, 매니페스트의 auth 토큰에 있습니다. 디버깅은 내 인증 자의 getAuthToken()
메소드로의 호출이 발생하지만 확인 권한 호출이 "granted"로 반환되었음을 보여줍니다.
EDIT : 콘텍스트에서 패키지 이름을 얻으면 checkCallingPermission()
을 호출하는 데 사용하고 있습니다. 사용자 정의 인증자를 호스팅하는 앱의 패키지 이름입니다. 호출하는 PID를 얻으면 UID는 각각 0과 1000입니다.
어떤 아이디어가 있습니까?
무엇 Context.checkCallingPermission'을 사용할 때 컨텍스트입니다 – FlyingStreudel
내 편집을 참조하십시오. –
콘텐츠 제공자를 사용하여 모든 권한 검사를 처리 할 수 없습니까? – wsanville