Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow IDPs to be set dynamically by other plugs #16

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

bmuller
Copy link

@bmuller bmuller commented Apr 7, 2024

I am working on an application that may have many IDP configurations, and they may need to be loaded dynamically. I believe this small modification would enable me to set the IDP configuration dynamically via a plug that runs earlier than Samly.

@CLAassistant
Copy link

CLAassistant commented Apr 7, 2024

CLA assistant check
All committers have signed the CLA.

def check_idp_id(conn, _opts) do
def check_idp_id(%Conn{private: %{samly_idp: %IdpData{}}} = conn, _opts), do: conn

def check_idp_id(conn, _opts), do: conn
idp_id_from = Application.get_env(:samly, :idp_id_from)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this line ever return anything but nil ?
idp_id_from = Application.get_env(:samly, :idp_id_from)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line exists in the current codebase and is unaffected by this PR.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bmuller ya i was just reviewing your PR and i just happen to be reviewing this method. And that line will never actually return the value its trying to access.

The way it says in the README to setup your configs is for example

config :samly, Samly.Provider,
  idp_id_from: :path_segment,

So you would need to have that line be

Application.get_env(:samly, Samly.Provider)[:idp_id_from]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically every where in this app it calls Application.get_env() its doing it in conflict with how it says to define it in the README.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants