import "github.com/gophish/gophish/controllers"
Package controllers is responsible for setting up the routing and controllers (http.Handlers) for gophish.
const TransparencySuffix = "+"
TransparencySuffix (when appended to a valid result ID), will cause Gophish to return a transparency response.
ErrCampaignComplete is thrown when an event is received for a campaign that has already been marked as complete.
ErrInvalidRequest is thrown when a request with an invalid structure is received
Flash handles the rendering flash messages
type AdminServer struct {
// contains filtered or unexported fields
}
AdminServer is an HTTP server that implements the administrative Gophish handlers, including the dashboard and REST API.
func NewAdminServer(config config.AdminServer, options ...AdminServerOption) *AdminServer
NewAdminServer returns a new instance of the AdminServer with the provided config and options applied.
func (as *AdminServer) Base(w http.ResponseWriter, r *http.Request)
Base handles the default path and template execution
func (as *AdminServer) CampaignID(w http.ResponseWriter, r *http.Request)
CampaignID handles the default path and template execution
func (as *AdminServer) Campaigns(w http.ResponseWriter, r *http.Request)
Campaigns handles the default path and template execution
func (as *AdminServer) Groups(w http.ResponseWriter, r *http.Request)
Groups handles the default path and template execution
func (as *AdminServer) Impersonate(w http.ResponseWriter, r *http.Request)
Impersonate allows an admin to login to a user account without needing the password
func (as *AdminServer) LandingPages(w http.ResponseWriter, r *http.Request)
LandingPages handles the default path and template execution
func (as *AdminServer) Login(w http.ResponseWriter, r *http.Request)
Login handles the authentication flow for a user. If credentials are valid, a session is created
func (as *AdminServer) Logout(w http.ResponseWriter, r *http.Request)
Logout destroys the current user session
func (as *AdminServer) ResetPassword(w http.ResponseWriter, r *http.Request)
ResetPassword handles the password reset flow when a password change is required either by the Gophish system or an administrator.
This handler is meant to be used when a user is required to reset their password, not just when they want to.
This is an important distinction since in this handler we don't require the user to re-enter their current password, as opposed to the flow through the settings handler.
To that end, if the user doesn't require a password change, we will redirect them to the settings page.
func (as *AdminServer) SendingProfiles(w http.ResponseWriter, r *http.Request)
SendingProfiles handles the default path and template execution
func (as *AdminServer) Settings(w http.ResponseWriter, r *http.Request)
Settings handles the changing of settings
func (as *AdminServer) Shutdown() error
Shutdown attempts to gracefully shutdown the server.
func (as *AdminServer) Start()
Start launches the admin server, listening on the configured address.
func (as *AdminServer) Templates(w http.ResponseWriter, r *http.Request)
Templates handles the default path and template execution
func (as *AdminServer) UserManagement(w http.ResponseWriter, r *http.Request)
UserManagement is an admin-only handler that allows for the registration and management of user accounts within Gophish.
func (as *AdminServer) Webhooks(w http.ResponseWriter, r *http.Request)
Webhooks is an admin-only handler that handles webhooks
type AdminServerOption func(*AdminServer)
AdminServerOption is a functional option that is used to configure the admin server
func WithWorker(w worker.Worker) AdminServerOption
WithWorker is an option that sets the background worker.
type PhishingServer struct {
// contains filtered or unexported fields
}
PhishingServer is an HTTP server that implements the campaign event handlers, such as email open tracking, click tracking, and more.
func NewPhishingServer(config config.PhishServer, options ...PhishingServerOption) *PhishingServer
NewPhishingServer returns a new instance of the phishing server with provided options applied.
func (ps *PhishingServer) PhishHandler(w http.ResponseWriter, r *http.Request)
PhishHandler handles incoming client connections and registers the associated actions performed (such as clicked link, etc.)
func (ps *PhishingServer) ReportHandler(w http.ResponseWriter, r *http.Request)
ReportHandler tracks emails as they are reported, updating the status for the given Result
func (ps *PhishingServer) RobotsHandler(w http.ResponseWriter, r *http.Request)
RobotsHandler prevents search engines, etc. from indexing phishing materials
func (ps *PhishingServer) Shutdown() error
Shutdown attempts to gracefully shutdown the server.
func (ps *PhishingServer) Start()
Start launches the phishing server, listening on the configured address.
func (ps *PhishingServer) TrackHandler(w http.ResponseWriter, r *http.Request)
TrackHandler tracks emails as they are opened, updating the status for the given Result
func (ps *PhishingServer) TransparencyHandler(w http.ResponseWriter, r *http.Request)
TransparencyHandler returns a TransparencyResponse for the provided result and campaign.
type PhishingServerOption func(*PhishingServer)
PhishingServerOption is a functional option that is used to configure the the phishing server
func WithContactAddress(addr string) PhishingServerOption
WithContactAddress sets the contact address used by the transparency handlers
type TransparencyResponse struct { Server string `json:"server"` ContactAddress string `json:"contact_address"` SendDate time.Time `json:"send_date"` }
TransparencyResponse is the JSON response provided when a third-party makes a request to the transparency handler.
Path | Synopsis |
---|---|
api |
Package controllers imports 27 packages (graph) and is imported by 16 packages. Updated 2020-12-15. Refresh now. Tools for package owners.