danieltm/http-security

Origins Framework的安全补充

V1.3 2024-09-16 19:18 UTC

This package is auto-updated.

Last update: 2024-09-19 16:13:26 UTC


README

描述

HttpSecurityConfigurar是一个与Origins框架相补充的框架,旨在以简单和高效的方式提供HTTP安全配置。它允许配置会话策略、请求模式、安全过滤器和请求匹配以进行认证和授权。

安装

  1. 确保已经安装并配置了Origins框架。
  2. 克隆或下载此存储库。
  3. 将Composer的autoload包含到您的项目中

使用

初始配置

创建一个扩展OnInit的类来配置初始依赖

    use Daniel\Origins\DependencyManager;
    use Daniel\Origins\HttpMethod;
    use Daniel\Origins\Inject;
    use Daniel\Origins\OnInit;

    class HttpSecurity extends OnInit {
        
        #[Inject]
        private HttpSecurityConfigurar $httpManager;

        #[Inject]
        private FilterChain $httpfilter;

        #[Override]
        public function ConfigOnInit() : void {
            $this->httpManager->sessionPolice(SessionPolice::STATELESS)
                ->RequestPatterns(function(RequestMatcherAction $e) {
                    $e->Request("/")->authenticate(["adm"]);
                    $e->Request("/teste")->authenticate();
                    $e->Request("/teste2", , HttpMethod::DELETE)->authenticate(["adm"]);
                })
                ->AddFilterBefore($this->httpfilter)
                //->AddFilterBefore(new FilterChain()) --> não irá ter ajuda do injetor de dependecias do Origin(injeção manul nesse caso);
                ->any()->permitAll();
        }
    }

    #[Dependency]
        class FilterChain extends SecurityFilterChain{
            
            public function filterPerRequest(Request $req){
                SecurityContext::setContext(new UserDatails());
            }
        }

        class UserDatails implements AuthContext{
            public function getUser():string{
                return "";
            }
            public function getPassword():string{
                return "";
            }
            public function getRoles():array{
                return ["adm"];
            }
        }

贡献

请随意提出问题和发送pull请求。所有贡献都受到欢迎!