我一直在RESTlet 2.1項目中工作。我已經想出瞭如何爲我的資源設置身份驗證。事實是..不是所有的人都需要認證!我很困惑我該怎麼做纔對。Restelet路由:有些資源需要認證,有些則不需要。怎麼做?
在下面的代碼,你可以看到我的服務器應用程序的輪廓,特別是「創建入根」:
@Override
public Restlet createInboundRoot(){
/* the structure so far is: a filter, followed by an authenticator,
followed by a rooter.
The filter is returned at end of the method.
*/
//Init filter:
SomeFilter someFilter = new SomeFilter();
//Init authenticator:
ChallengeAuthenticator authenticator = new ChallengeAuthenticator(
......);
//more authenticator stuff goes here....
//Init router:
Router router = new Router(getContext());
//this should be a public resource, no need for auth:
router.attach("/0.1/getResource", SomeResource.class)
//this is a private resource, needs auth:
router.attach("/0.1/getPrivateResource", PrivateResource.class);
//set up the flow: filter -> authenticator -> router
authenticator.setNext(router);
someFilter.setNext(authenticator);
return someFilter;
}
的過濾器必須是之前的一切,因爲我需要修改都有些頭包。在過濾器之後,我想設置一個分支,我的公共資源的請求只被路由到資源類,並且私有資源的請求必須通過認證者。
我該如何做到這一點?我對這個框架並不熟悉,即使看起來很簡單,也無法弄清楚。
是有幫助,謝謝。儘管我有很多這兩種類型的資源,所以我認爲我需要兩個以上的路由器,路由器可以匹配url中的正則表達式還是部分url? –
我想你可以鏈路由器。 – tom