danieltm/http-security

complemento de seguranca para Origins Framework

V1.0.2 2025-01-14 02:38 UTC

This package is auto-updated.

Last update: 2025-02-20 18:55:38 UTC


README

Descrição

O HttpSecurityConfigurar é um framework complementar ao Origins, projetado para fornecer configurações de segurança HTTP de forma simples e eficiente. Ele permite configurar políticas de sessão, padrões de requisição, filtros de segurança e correspondências de requisição para autenticação e autorização.

Instalação

  1. Certifique-se de ter o framework Origins instalado e configurado.
  2. Clone ou faça o download deste repositório.
  3. Inclua o autoload do Composer no seu projeto:

Uso

Configuração Inicial

Crie uma classe que estenda OnInit para configurar as dependências iniciais:

    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, "env_teste")->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"];
            }
        }

Contribuição

Sinta-se à vontade para abrir issues e enviar pull requests. Toda contribuição é bem-vinda!