উল্লিখিত কোনও কৌশলই আর কাজ করবে না। দেখে মনে হচ্ছে যেন ব্যবহারকারীরা সিকিউরিটি এক্সপ্রেসন রুটকে ওভাররাইড করা থেকে রক্ষা করতে বসন্তটি অনেকদূর পেরিয়েছে।
সুরক্ষা টীকাগুলি ব্যবহার করতে 11/19/14 এডিট স্প্রিং সেট করুন:
<beans ... xmlns:sec="http://www.springframework.org/schema/security" ... >
...
<sec:global-method-security pre-post-annotations="enabled" />
এই জাতীয় শিম তৈরি করুন:
@Component("mySecurityService")
public class MySecurityService {
public boolean hasPermission(String key) {
return true;
}
}
তারপরে আপনার জেএসপিতে এটির মতো কিছু করুন:
<sec:authorize access="@mySecurityService.hasPermission('special')">
<input type="button" value="Special Button" />
</sec:authorize>
অথবা কোনও পদ্ধতির টীকায়িত করুন:
@PreAuthorize("@mySecurityService.hasPermission('special')")
public void doSpecialStuff() { ... }
অতিরিক্ত হিসাবে, আপনি বর্তমান প্রমাণীকরণের পাশাপাশি পদ্ধতির আর্গুমেন্টগুলি অ্যাক্সেস করতে আপনার টীকাগুলিতে স্প্রিং এক্সপ্রেশন ভাষা ব্যবহার করতে পারেন @PreAuthorize
।
উদাহরণ স্বরূপ:
@Component("mySecurityService")
public class MySecurityService {
public boolean hasPermission(Authentication authentication, String foo) { ... }
}
তারপরে @PreAuthorize
নতুন পদ্ধতির স্বাক্ষরের সাথে মেলে আপনার আপডেট করুন :
@PreAuthorize("@mySecurityService.hasPermission(authentication, #foo)")
public void doSpecialStuff(String foo) { ... }