1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2026-03-03 06:14:06 +00:00

Compare commits

3 الالتزامات
3.1.0 ... 3.1.1

المؤلف SHA1 الرسالة التاريخ
github-actions[bot]
4c27baee7f chore(main): release 3.1.1 (#2859)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-08 18:32:33 +00:00
Adam Cooke
9399e32234 fix: don't override paths in dockerfile
This allows for these paths to continue to be set in the config file or environment variable while still maintaining the default of having the default paths in the same directory as the postal config file.
2024-03-08 16:40:58 +00:00
Adam Cooke
22dcd4901f test(smtp-sender): add more tests for AUTH LOGIN
This adds tests for AUTH LOGIN when the username is not provided on the initial line
2024-03-08 14:08:53 +00:00
8 ملفات معدلة مع 55 إضافات و13 حذوفات

عرض الملف

@@ -1,3 +1,3 @@
{
".": "3.1.0"
".": "3.1.1"
}

عرض الملف

@@ -2,6 +2,18 @@
This file contains all the latest changes and updates to Postal.
## [3.1.1](https://github.com/postalserver/postal/compare/3.1.0...3.1.1) (2024-03-08)
### Bug Fixes
* don't override paths in dockerfile ([9399e32](https://github.com/postalserver/postal/commit/9399e3223467cdacd010e70b58ad6093e128213d))
### Tests
* **smtp-sender:** add more tests for AUTH LOGIN ([22dcd49](https://github.com/postalserver/postal/commit/22dcd4901f188915cf4b3c758c6f2fc637a4e1e3))
## [3.1.0](https://github.com/postalserver/postal/compare/3.0.2...3.1.0) (2024-03-06)

عرض الملف

@@ -48,9 +48,6 @@ RUN echo $VERSION > VERSION
# Set paths for when running in a container
ENV POSTAL_CONFIG_FILE_PATH=/config/postal.yml
ENV POSTAL_SIGNING_KEY_PATH=/config/signing.key
ENV SMTP_SERVER_TLS_CERTIFICATE_PATH=/config/smtp.cert
ENV SMTP_SERVER_TLS_PRIVATE_KEY_PATH=/config/smtp.key
# Set the CMD
ENTRYPOINT [ "/docker-entrypoint.sh" ]

عرض الملف

@@ -16,7 +16,7 @@ gem "hashie"
gem "highline", require: false
gem "kaminari"
gem "klogger-logger"
gem "konfig-config", "~> 2.0"
gem "konfig-config", "~> 3.0"
gem "mail"
gem "moonrope"
gem "mysql2"

عرض الملف

@@ -149,7 +149,7 @@ GEM
concurrent-ruby (>= 1.0, < 2.0)
json
rouge (>= 3.30, < 5.0)
konfig-config (2.1.1)
konfig-config (3.0.0)
hashie
loofah (2.22.0)
crass (~> 1.0.2)
@@ -353,7 +353,7 @@ DEPENDENCIES
jquery-rails
kaminari
klogger-logger
konfig-config (~> 2.0)
konfig-config (~> 3.0)
mail
moonrope
mysql2

عرض الملف

@@ -68,7 +68,8 @@ module Postal
string :signing_key_path do
description "Path to the private key used for signing"
default "config/postal/signing.key"
default "$config-file-root/signing.key"
transform { |v| Postal.substitute_config_file_root(v) }
end
string :smtp_relays do
@@ -253,12 +254,14 @@ module Postal
string :tls_certificate_path do
description "The path to the SMTP server's TLS certificate"
default "config/postal/smtp.cert"
default "$config-file-root/smtp.cert"
transform { |v| Postal.substitute_config_file_root(v) }
end
string :tls_private_key_path do
description "The path to the SMTP server's TLS private key"
default "config/postal/smtp.key"
default "$config-file-root/smtp.key"
transform { |v| Postal.substitute_config_file_root(v) }
end
string :tls_ciphers do
@@ -502,4 +505,14 @@ module Postal
end
end
class << self
def substitute_config_file_root(string)
return if string.nil?
string.gsub(/\$config-file-root/i, File.dirname(Postal.config_file_path))
end
end
end

عرض الملف

@@ -17,7 +17,9 @@ module Postal
# by the schema itself. Otherwise, we might see a value returned that
# looks correct but is actually the default rather than the value from
# config file.
allow_any_instance_of(Konfig::SchemaAttribute).to receive(:default).and_return(nil)
allow_any_instance_of(Konfig::SchemaAttribute).to receive(:default) do |a|
a.array? ? [] : nil
end
end
let(:source) { described_class.new(SOURCE_CONFIG) }

عرض الملف

@@ -55,6 +55,26 @@ module SMTPServer
it "requests the username" do
expect(client.handle("AUTH LOGIN")).to eq("334 VXNlcm5hbWU6")
end
it "requests a password after a username" do
client.handle("AUTH LOGIN")
expect(client.handle("xx")).to eq("334 UGFzc3dvcmQ6")
end
it "authenticates and returns a response if the password is correct" do
client.handle("AUTH LOGIN")
client.handle("xx")
credential = create(:credential, type: "SMTP")
password = Base64.encode64(credential.key)
expect(client.handle(password)).to match(/235 Granted for/)
end
it "returns an error when an invalid credential is provided" do
client.handle("AUTH LOGIN")
client.handle("xx")
password = Base64.encode64("xx")
expect(client.handle(password)).to eq("535 Invalid credential")
end
end
context "when a username is provided on the first line" do
@@ -71,9 +91,7 @@ module SMTPServer
expect(client.handle(password)).to match(/235 Granted for/)
expect(client.credential).to eq credential
end
end
context "when invalid credentials are provided" do
it "returns an error and resets the state" do
username = Base64.encode64("xx")
password = Base64.encode64("xx")