J'ai mis en place la sécurité du ressort dans la méthode du contrôleur.Comment vérifier la sécurité du ressort au niveau de la méthode
Ci-dessous est mon ressort security.xml
->
<!-- URL pattern based security -->
<security:http auto-config="false" entry-point-ref="authenticationEntryPoint"
use-expressions="true">
<custom-filter ref="authenticationFilter" position="FORM_LOGIN_FILTER" />
<security:intercept-url access="hasAnyRole('ROLE_ADMIN','ROLE_USER')" pattern="/common/admin/**" />
<security:intercept-url pattern="/common/accounting/**" access="hasRole('ROLE_USER')" />
<security:logout logout-url="/j_spring_security_logout" invalidate-session="true" logout-success-url="/login"/>
</security:http>
Ci-dessous est mon contrôleur
@Secured({"ROLE_ADMIN"})
@RequestMapping(value = "/common/admin/addAdmin", method = RequestMethod.GET)
public String add(ModelMap map) {
map.addAttribute(new Administrator());
return "/common/admin/addAdmin";
}
@Secured({"ROLE_ADMIN"})
@RequestMapping(value = "/common/admin/addAdmin", method = RequestMethod.POST)
public String processadd(
@ModelAttribute("administrator") Administrator administrator) {
this.administratorManager.addAdmin(administrator);
return "/common/admin/success";
}
J'autorise l'url/commune/admin/** pour le rôle d'administrateur et d'utilisateur. Mais je fais une certaine restriction dans le contrôleur d'administration. Lorsque l'utilisateur se rend dans/common/admin/* comme un rôle d'utilisateur, il peut mais il peut aussi entrer dans la méthode qui est seulement pour le rôle d'administrateur.
Comment puis-je le résoudre?
Merci!
salut ralph, j'ai déjà ajouté le dans security.xml. Mais la méthode de vérification de la sécurité ne fonctionne pas. Comment fais-je? –
sudo
@sudo: s'il vous plaît décrivez votre problème approprié - dans le texte de la question n'était pas explicite question, aucun indice que quelque chose ne fonctionne pas comme prévu. – Ralph
Je ne suis pas d'accord avec l'affirmation selon laquelle les annotations '@ Secured' sont fonctionnellement identiques à' @ RolesAllowed'. Si vous recherchez simplement l'une des listes de rôles, alors c'est probablement vrai, mais les annotations '@ Secured' sont plus puissantes car elles utilisent le système' 'AccessDecisionManager' de Spring Security et le système des électeurs. Les attributs ne sont pas limités à des rôles simples. –