Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F21841923
authentication_plug.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
authentication_plug.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Plugs.AuthenticationPlug
do
alias
Comeonin.Pbkdf2
import
Plug.Conn
alias
Pleroma.User
require
Logger
def
init
(
options
),
do
:
options
def
checkpw
(
password
,
"$6"
<>
_
=
password_hash
)
do
:crypt
.
crypt
(
password
,
password_hash
)
==
password_hash
end
def
checkpw
(
password
,
"$pbkdf2"
<>
_
=
password_hash
)
do
Pbkdf2
.
checkpw
(
password
,
password_hash
)
end
def
checkpw
(
_password
,
_password_hash
)
do
Logger
.
error
(
"Password hash not recognized"
)
false
end
def
call
(%{
assigns
:
%{
user
:
%
User
{}}}
=
conn
,
_
),
do
:
conn
def
call
(
%{
assigns
:
%{
auth_user
:
%{
password_hash
:
password_hash
}
=
auth_user
,
auth_credentials
:
%{
password
:
password
}
}
}
=
conn
,
_
)
do
if
Pbkdf2
.
checkpw
(
password
,
password_hash
)
do
conn
|>
assign
(
:user
,
auth_user
)
else
conn
end
end
def
call
(%{
assigns
:
%{
auth_credentials
:
%{
password
:
_
}}}
=
conn
,
_
)
do
Pbkdf2
.
dummy_checkpw
()
conn
end
def
call
(
conn
,
_
),
do
:
conn
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Sat, Dec 27, 11:51 PM (1 d, 2 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
739389
Default Alt Text
authentication_plug.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment