Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
0.91 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.12 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\EntryComment {#1394
  +user: Proxies\__CG__\App\Entity\User {#1369 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#323
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#317
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#316
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2476 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2466 …}
  +body: """
    I set this up a couple years ago but I seem to remember AWS walking me through the initial setup.\n
    \n
    First you’ll need to configure your domain(s) in SES. It requires you to set some DNS records to verify ownership. You’ll also need to configure your SPF record(s) to allow email to be sent through SES. They provide you with all of this information.\n
    \n
    Next, you’ll need to configure SES credentials or it won’t accept mail from your servers. From a security standpoint, if you have multiple SMTP servers I would give each a unique set of credentials but you can get away with one for simplicity.\n
    \n
    Finally you’ll need to configure your MTA to relay through SES. If you use postfix here’s a quick guide: [medium.com/…/sending-emails-with-postfix-and-amaz…](https://medium.com/@cloudinit/sending-emails-with-postfix-and-amazon-ses-2341489a97e2)\n
    \n
    I’ve got postfix configured on each of my VPS servers, plus and internal relay, to relay all mail through SES. To the best of my knowledge it’s worked fine. I haven’t had issues with mail getting dropped or flagged as SPAM.\n
    \n
    There is a cost, but with my email volumes (which are admittedly low) it costs me 2-3 cents a month.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1704831751 {#1605
    date: 2024-01-09 21:22:31.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@avguser@lemmy.world"
    "@ChrislyBear@lemmy.world"
    "@lily33@lemm.ee"
    "@SeeJayEmm@lemmy.procrastinati.org"
    "@domi@lemmy.secnd.me"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2288 …}
  +nested: Doctrine\ORM\PersistentCollection {#2166 …}
  +votes: Doctrine\ORM\PersistentCollection {#2427 …}
  +reports: Doctrine\ORM\PersistentCollection {#2426 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2488 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1841 …}
  -id: 294207
  -bodyTs: "'-3':201 '/@cloudinit/sending-emails-with-postfix-and-amazon-ses-2341489a97e2)':139 '/sending-emails-with-postfix-and-amaz':136 '2':200 'accept':81 'admit':195 'ago':8 'allow':54 'also':45 'aw':14 'away':109 'best':163 'cent':202 'configur':26,48,74,119,144 'cost':187,198 'coupl':6 'credenti':76,104 'dns':38 'domain':28 'drop':179 'email':55,191 'final':114 'fine':170 'first':21 'flag':181 'get':108,178 'give':98 'got':142 'guid':134 'haven':172 'inform':68 'initi':19 'intern':153 'issu':175 'knowledg':166 'll':23,44,71,116 'low':196 'mail':82,158,177 'medium.com':135,138 'medium.com/@cloudinit/sending-emails-with-postfix-and-amazon-ses-2341489a97e2)':137 'month':204 'mta':121 'multipl':93 'need':24,46,72,117 'next':69 'one':111 'ownership':42 'plus':151 'postfix':129,143 'provid':62 'quick':133 'record':39,51 'relay':123,154,156 'rememb':13 'requir':33 'secur':88 'seem':11 'sent':58 'server':85,95,150 'ses':31,60,75,125,160 'set':2,36,102 'setup':20 'simplic':113 'smtp':94 'spam':183 'spf':50 'standpoint':89 'uniqu':101 'use':128 've':141 'verifi':41 'volum':192 'vps':149 'walk':15 'won':79 'work':169 'would':97 'year':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.procrastinati.org/comment/1344945"
  +editedAt: null
  +createdAt: DateTimeImmutable @1704831751 {#1377
    date: 2024-01-09 21:22:31.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\EntryComment {#1394
  +user: Proxies\__CG__\App\Entity\User {#1369 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#323
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#317
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#316
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2476 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2466 …}
  +body: """
    I set this up a couple years ago but I seem to remember AWS walking me through the initial setup.\n
    \n
    First you’ll need to configure your domain(s) in SES. It requires you to set some DNS records to verify ownership. You’ll also need to configure your SPF record(s) to allow email to be sent through SES. They provide you with all of this information.\n
    \n
    Next, you’ll need to configure SES credentials or it won’t accept mail from your servers. From a security standpoint, if you have multiple SMTP servers I would give each a unique set of credentials but you can get away with one for simplicity.\n
    \n
    Finally you’ll need to configure your MTA to relay through SES. If you use postfix here’s a quick guide: [medium.com/…/sending-emails-with-postfix-and-amaz…](https://medium.com/@cloudinit/sending-emails-with-postfix-and-amazon-ses-2341489a97e2)\n
    \n
    I’ve got postfix configured on each of my VPS servers, plus and internal relay, to relay all mail through SES. To the best of my knowledge it’s worked fine. I haven’t had issues with mail getting dropped or flagged as SPAM.\n
    \n
    There is a cost, but with my email volumes (which are admittedly low) it costs me 2-3 cents a month.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1704831751 {#1605
    date: 2024-01-09 21:22:31.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@avguser@lemmy.world"
    "@ChrislyBear@lemmy.world"
    "@lily33@lemm.ee"
    "@SeeJayEmm@lemmy.procrastinati.org"
    "@domi@lemmy.secnd.me"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2288 …}
  +nested: Doctrine\ORM\PersistentCollection {#2166 …}
  +votes: Doctrine\ORM\PersistentCollection {#2427 …}
  +reports: Doctrine\ORM\PersistentCollection {#2426 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2488 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1841 …}
  -id: 294207
  -bodyTs: "'-3':201 '/@cloudinit/sending-emails-with-postfix-and-amazon-ses-2341489a97e2)':139 '/sending-emails-with-postfix-and-amaz':136 '2':200 'accept':81 'admit':195 'ago':8 'allow':54 'also':45 'aw':14 'away':109 'best':163 'cent':202 'configur':26,48,74,119,144 'cost':187,198 'coupl':6 'credenti':76,104 'dns':38 'domain':28 'drop':179 'email':55,191 'final':114 'fine':170 'first':21 'flag':181 'get':108,178 'give':98 'got':142 'guid':134 'haven':172 'inform':68 'initi':19 'intern':153 'issu':175 'knowledg':166 'll':23,44,71,116 'low':196 'mail':82,158,177 'medium.com':135,138 'medium.com/@cloudinit/sending-emails-with-postfix-and-amazon-ses-2341489a97e2)':137 'month':204 'mta':121 'multipl':93 'need':24,46,72,117 'next':69 'one':111 'ownership':42 'plus':151 'postfix':129,143 'provid':62 'quick':133 'record':39,51 'relay':123,154,156 'rememb':13 'requir':33 'secur':88 'seem':11 'sent':58 'server':85,95,150 'ses':31,60,75,125,160 'set':2,36,102 'setup':20 'simplic':113 'smtp':94 'spam':183 'spf':50 'standpoint':89 'uniqu':101 'use':128 've':141 'verifi':41 'volum':192 'vps':149 'walk':15 'won':79 'work':169 'would':97 'year':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.procrastinati.org/comment/1344945"
  +editedAt: null
  +createdAt: DateTimeImmutable @1704831751 {#1377
    date: 2024-01-09 21:22:31.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\EntryComment {#1394
  +user: Proxies\__CG__\App\Entity\User {#1369 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#323
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#317
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#316
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2476 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2466 …}
  +body: """
    I set this up a couple years ago but I seem to remember AWS walking me through the initial setup.\n
    \n
    First you’ll need to configure your domain(s) in SES. It requires you to set some DNS records to verify ownership. You’ll also need to configure your SPF record(s) to allow email to be sent through SES. They provide you with all of this information.\n
    \n
    Next, you’ll need to configure SES credentials or it won’t accept mail from your servers. From a security standpoint, if you have multiple SMTP servers I would give each a unique set of credentials but you can get away with one for simplicity.\n
    \n
    Finally you’ll need to configure your MTA to relay through SES. If you use postfix here’s a quick guide: [medium.com/…/sending-emails-with-postfix-and-amaz…](https://medium.com/@cloudinit/sending-emails-with-postfix-and-amazon-ses-2341489a97e2)\n
    \n
    I’ve got postfix configured on each of my VPS servers, plus and internal relay, to relay all mail through SES. To the best of my knowledge it’s worked fine. I haven’t had issues with mail getting dropped or flagged as SPAM.\n
    \n
    There is a cost, but with my email volumes (which are admittedly low) it costs me 2-3 cents a month.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1704831751 {#1605
    date: 2024-01-09 21:22:31.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@avguser@lemmy.world"
    "@ChrislyBear@lemmy.world"
    "@lily33@lemm.ee"
    "@SeeJayEmm@lemmy.procrastinati.org"
    "@domi@lemmy.secnd.me"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2288 …}
  +nested: Doctrine\ORM\PersistentCollection {#2166 …}
  +votes: Doctrine\ORM\PersistentCollection {#2427 …}
  +reports: Doctrine\ORM\PersistentCollection {#2426 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2488 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1841 …}
  -id: 294207
  -bodyTs: "'-3':201 '/@cloudinit/sending-emails-with-postfix-and-amazon-ses-2341489a97e2)':139 '/sending-emails-with-postfix-and-amaz':136 '2':200 'accept':81 'admit':195 'ago':8 'allow':54 'also':45 'aw':14 'away':109 'best':163 'cent':202 'configur':26,48,74,119,144 'cost':187,198 'coupl':6 'credenti':76,104 'dns':38 'domain':28 'drop':179 'email':55,191 'final':114 'fine':170 'first':21 'flag':181 'get':108,178 'give':98 'got':142 'guid':134 'haven':172 'inform':68 'initi':19 'intern':153 'issu':175 'knowledg':166 'll':23,44,71,116 'low':196 'mail':82,158,177 'medium.com':135,138 'medium.com/@cloudinit/sending-emails-with-postfix-and-amazon-ses-2341489a97e2)':137 'month':204 'mta':121 'multipl':93 'need':24,46,72,117 'next':69 'one':111 'ownership':42 'plus':151 'postfix':129,143 'provid':62 'quick':133 'record':39,51 'relay':123,154,156 'rememb':13 'requir':33 'secur':88 'seem':11 'sent':58 'server':85,95,150 'ses':31,60,75,125,160 'set':2,36,102 'setup':20 'simplic':113 'smtp':94 'spam':183 'spf':50 'standpoint':89 'uniqu':101 'use':128 've':141 'verifi':41 'volum':192 'vps':149 'walk':15 'won':79 'work':169 'would':97 'year':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.procrastinati.org/comment/1344945"
  +editedAt: null
  +createdAt: DateTimeImmutable @1704831751 {#1377
    date: 2024-01-09 21:22:31.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED edit
App\Entity\Magazine {#313
  +icon: Proxies\__CG__\App\Entity\Image {#294 …}
  +name: "selfhosted@lemmy.world"
  +title: "selfhosted"
  +description: """
    A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
    \n
    Rules:\n
    \n
    - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
    - No spam posting.\n
    - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
    - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
    - No trolling.\n
    \n
    Resources:\n
    \n
    - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
    - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
    - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
    \n
    > Any issues on the community? Report it using the report flag.\n
    \n
    > Questions? DM the mods!
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 222
  +entryCommentCount: 3916
  +postCount: 0
  +postCommentCount: 0
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729582735 {#323
    date: 2024-10-22 09:38:55.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#285 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
  +entries: Doctrine\ORM\PersistentCollection {#228 …}
  +posts: Doctrine\ORM\PersistentCollection {#186 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
  +bans: Doctrine\ORM\PersistentCollection {#165 …}
  +reports: Doctrine\ORM\PersistentCollection {#151 …}
  +badges: Doctrine\ORM\PersistentCollection {#129 …}
  +logs: Doctrine\ORM\PersistentCollection {#119 …}
  +awards: Doctrine\ORM\PersistentCollection {#108 …}
  +categories: Doctrine\ORM\PersistentCollection {#95 …}
  -id: 120
  +apId: "selfhosted@lemmy.world"
  +apProfileId: "https://lemmy.world/c/selfhosted"
  +apPublicUrl: "https://lemmy.world/c/selfhosted"
  +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
  +apInboxUrl: "https://lemmy.world/inbox"
  +apDomain: "lemmy.world"
  +apPreferredUsername: "selfhosted"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1703473826 {#317
    date: 2023-12-25 04:10:26.0 +01:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1703473826 {#316
    date: 2023-12-25 04:10:26.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details