shiro 권한 검증 프레임 워 크
1. Shiro 란 무엇 인가?
Shiro 는 자바 언어 로 이 루어 진 프레임 워 크 로 간단 하고 사용 하기 쉬 운 API 를 통 해 인증 과 인증 을 제공 합 니 다.Shiro 를 사용 하면 프로그램 에 보안 을 제공 할 수 있 으 며 처음부터 모든 코드 를 작성 하지 않 아 도 됩 니 다.
2. Shiro 는 왜 쓰 나 요?
shiro 는 대부분의 기업 급 시스템 에서 저 희 는 캐릭터 관련 자원 을 사용 한 다음 에 사용자 에 게 일부 역할 을 지정 합 니 다. 그러면 사용 자 는 url, 메뉴 등 자원 을 가지 고 로그 인 한 후에 페이지 에 해당 하 는 기능 을 가 질 수 있 습 니 다. 그러나 이런 상황 에서 이러한 안전 문제 가 존재 합 니 다. 사용자 페이지 는 해당 하 는 기능 메뉴 만 표시 하지 않 았 기 때 문 입 니 다.만약 에 한 사용자 가 url 주 소 를 알 고 직접 방문 하면 시스템 은 이 사용자 의 조작 을 통제 할 수 없 기 때문에 권한 검증 프레임 워 크 라 는 설 을 맞이 합 니 다.
3. Shiro 는 어떤 방식 으로 권한 을 제어 할 수 있 습 니까?
마찬가지 로 shiro 는 두 가지 설정 방식 이 있 습 니 다. xml 와 주해 가 있 습 니 다. 물론 xml 는 상대 적 으로 유연 하지 않 습 니 다. 인증 권한 을 수 여 받 은 후에 어떤 페이지 를 방문 할 수 있 는 지, 어떤 페이지 를 방문 할 수 없 는 지 지정 할 수 있 습 니 다. 주해 에 대해 유연 하고 여러 가지 상황 에 적응 할 수 있 습 니 다.
방법
@RequiresAuthentication (사용자 로그 인 여부 검증) @ RequiresUser 사용자 가 기억 되 는 지 검증 합 니 다. user 는 두 가지 의미 가 있 습 니 다. 하 나 는 로그 인 에 성공 한 (subject. is Authenticated () 결 과 는 true) 입 니 다.다른 하 나 는 기억 되 는 (subject. is Remembered () 결 과 는 true) 입 니 다. @RequiresGuest 는 게 스 트 의 요청 인지 확인 합 니 다 @ RequiresRoles subject 에 aRoleName 캐릭터 가 있어 야 접근 할 수 있 습 니 다 someMethod.이 권한 이 없 으 면 이상 AuthorizationException 을 던 집 니 다. @RequiresPermissions subject 에 file: read 와 write: aFile. txt 의 권한 을 동시에 포함 해 야 방법 someMethod () 를 실행 할 수 있 습 니 다.그렇지 않 으 면 이상 AuthorizationException 을 던 집 니 다.
4. 시 로 를 어떻게 사용 하 는 지 말 해 볼 까?
먼저 spring - shiro. xml 설정 을 추가 합 니 다. 구체 적 으로 다음 과 같 습 니 다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"
default-lazy-init="true">
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="/shiro/turnlogin.do" />
<property name="successUrl" value="/shiro/success.do" />
<property name="unauthorizedUrl" value="/shiro/unauth.do" />
<property name="filterChainDefinitions">
<value>
/shiro/success = authc <!-- authc -->
/shiro/success = authc, perms[/home] <!-- perms -->
</value>
</property>
</bean>
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="myShiroRealm"></property>
</bean>
<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
<bean id="myShiroRealm" class="com.hfmx.util.shiro.MyShiroRealm">
<!-- businessManager -->
<!-- <property name="shiroService" ref="shiroService" /> --> </bean>
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!-- -->
<prop key="org.apache.shiro.authz.UnauthenticatedException">
redirect:/shiro/turnlogin.do
</prop>
<!-- -->
<prop key="org.apache.shiro.authz.UnauthorizedException">
redirect:/shiro/turnlogin.do
</prop>
</props>
</property>
<property name="defaultErrorView" value="s/403" />
</bean>
</beans>
applicationContext 에 이 파일 < import resource = "classpath *: / spring - shiro. xml" / > 을 도입 합 니 다.
springMVC 에 가입:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Pytest 테스트 프레임워크 기본 사용 방법 상세 정보pytest 소개 2. 매개 변수화를 지원하여 테스트할 테스트 용례를 세밀하게 제어할 수 있다. 3. 간단한 단원 테스트와 복잡한 기능 테스트를 지원할 수 있고selenium/appnium 등 자동화 테스트, 인터페...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.