Devolutions / Devolutions/IronRDP
Server-side CredSSP provider + migrate `ironrdp-acceptor` off `ironrdp-connector`
- Dominant language
- Rust
- Stars
- 3.2k
- Forks
- 275
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 189
Description
`ironrdp-acceptor` depends on the *client* `ironrdp-connector` only to borrow `Sequence`/`ServerName`/`DesktopSize`/`ConnectorError` and (until #1427) the sspi re-export. With the framework in `ironrdp-sequence` (#1426) and CredSSP behind a trait (#1428/#1429), that dependency can go.
### Scope
- [ ] Add a server role to the CredSSP contract (a `role` on the provider or a `ServerCredsspProvider` sibling) in `ironrdp-credssp`; implement it in `ironrdp-credssp-impl` over `sspi::credssp::CredSspServer`.
- [ ] `ironrdp-acceptor` depends on `ironrdp-sequence` + `ironrdp-credssp` instead of `ironrdp-connector`; define `AcceptorError` (or reuse `SequenceError` + a credssp error) rather than borrowing `ConnectorError`.
- [ ] Add xtask guard: `ironrdp-acceptor` must not depend on `ironrdp-connector`.
### Acceptance criteria
- `cargo tree -p ironrdp-acceptor -e no-dev -i ironrdp-connector` is empty.
- Server-side NLA behavior unchanged.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the CredSSP contracts in ironrdp-credssp and their implementation in ironrdp-credssp-impl, then inspect ironrdp-acceptor's current ironrdp-connector usage. Run cargo tree -p ironrdp-acceptor -e no-dev -i ironrdp-connector and the relevant workspace tests; done means the tree is empty and server-side NLA behavior is unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- authentication, backend, security
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100