2012-02-08 16 views
0

人、私はSpring Security Coreプラグインを利用するシステムをgrailsで作成しました。今度はHTTP経由でデータにアクセスするためにAndroid(Java)クライアントを作成しました。最初は私のコードは、私は以下のコードを使用していたとき、スプリングセキュリティによってブロックされていました:自己登録Grailsはhttp(Androidクライアント)経由でアクセスします

DefaultHttpClient httpClient = new DefaultHttpClient(); 
CredentialsProvider credProvider = new BasicCredentialsProvider(); credProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("LOGIN", "PWD"); 
httpClient.setCredentialsProvider(credProvider); 

それは、ログインページに私をリダイレクトされたが、その後、私の友人は、BASICを使用するために、サーバーとクライアントを構成しHTTP認証が有効になっていて、クライアントが要求を送信し、応答がOKでした。しかし、私のログインページは動作していません。ユーザーがログインしていない場合、カスタマイズされたログインページではなく、デフォルトの「基本」ログイン/パスワード画面が表示されます。

それがどんなであれば

// HTTP Authentication 

// Type of authentication 
List<String> authPrefs = new ArrayList<String>(2); 
authPrefs.add(AuthPolicy.BASIC); 
httpclient.getParams().setParameter("http.auth.scheme-pref", authPrefs); 
httpclient.getCredentialsProvider().setCredentials(new AuthScope(urlHost, urlPort),new UsernamePasswordCredentials("login", "pwd")); 

//Preemptive mode 

BasicHttpContext localcontext = new BasicHttpContext(); 
BasicScheme basicAuth = new BasicScheme(); 
localcontext.setAttribute("preemptive-auth", basicAuth); 
httpContext = localcontext; 

AbstractHttpMessage method = null; 
method = new HttpGet(urlStr); 
method.setParams(new BasicHttpParams().setParameter(urlStr, url)); 

// Now Execute: 
HttpResponse httpResponse = httpclient.execute((HttpUriRequest) method, httpContext); 

答えて

0

あなたはこのヘルプを出してい...「作品」は以下であることをクライアントコードを助けますか?これはGrails web-appのいくつかのセクション(ユーザ名とパスワードを要求するジェネリックウィンドウ)と他のユーザのための「通常の」ログインフォーム(デフォルトのWebログインページ)で基本認証を使用する方法を示しています。

http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/single.html#9.1%20Basic%20and%20Digest%20Authentication