shiro 권한 검증 프레임 워 크

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 에 가입:  

좋은 웹페이지 즐겨찾기