春のセキュリティを介してアクセスを制限するために使用する方法があります。方法は次のとおりです。
@PreAuthorize("isAuthenticated() and hasPermission(#request, 'CREATE_REQUISITION')")
@RequestMapping(method = RequestMethod.POST, value = "/trade/createrequisition")
public @ResponseBody
void createRequisition(@RequestBody CreateRequisitionRO[] request,
@RequestHeader("validateOnly") boolean validateOnly) {
logger.debug("Starting createRequisition()...");
for (int i = 0; i < request.length; i++) {
CreateRequisitionRO requisitionRequest = request[i];
// FIXME this has to be removed/moved
requisitionRequest.setFundManager(requisitionRequest.getUserId());
// FIXME might have to search using param level as well
SystemDefault sysDefault = dbFuncs.references.systemDefault
.findByCompanyAndDivisionAndPortfolio(
userContext.getCompany(),
userContext.getDivision(),
requisitionRequest.getPortfolio());
requisitionRequest.setCustodianN(sysDefault.getCustodianN());
gateKeeper.route(requisitionRequest);
}
}
ここで、実行時に Java Reflection を使用して、単体テストのようにメソッドが正常に機能しているかどうかをテストしたいと考えています。
上記の TestNG を作成しようとしましたが、これはプロジェクトのアーキテクチャが原因で機能しないため、リフレクションを使用してテストすることにしました[though which is not a good way of doing this and later we will find the solution for this]
。
私の質問は、そのメソッドの Java リフレクション クラスを作成し、上記のメソッドを呼び出して/trade/createrequisition
、ログインしているユーザーがアクセスできるかどうかをサーバーに送信する方法です。
これを行う方法。